diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..76ff616
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,23 @@
+# This file is for unifying the coding style for different editors and IDEs
+# editorconfig.org
+
+# WordPress Coding Standards
+# https://make.wordpress.org/core/handbook/coding-standards/
+
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+indent_style = tab
+space_around_brackets = true
+indent_size = 4
+
+[{.jshintrc,*.json,*.yml}]
+indent_style = space
+indent_size = 2
+
+[{*.txt,wp-config-sample.php}]
+end_of_line = crlf
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..54af547
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+gulpfile.js
\ No newline at end of file
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..affda9f
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,18 @@
+{
+ "parser": "espree",
+ "ecmaFeatures": {},
+ "parserOptions": {
+ "sourceType": "module"
+ },
+ "extends": "eslint:recommended",
+ "env": {
+ "browser": true,
+ "jquery": true,
+ "es6": true,
+ "amd": true
+ },
+ "rules": {
+ "no-undef": 0,
+ "no-unused-vars": 0
+ }
+}
\ No newline at end of file
diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml
index bc90933..9a0870b 100644
--- a/bitbucket-pipelines.yml
+++ b/bitbucket-pipelines.yml
@@ -9,9 +9,38 @@ pipelines:
- composer
- vendor-directory
script:
+ - apt-get update && apt-get install -y git openssh-server
- composer install --no-interaction --no-progress --prefer-dist --ignore-platform-reqs
- - ./vendor/bin/phpunit --testsuite "OWC OpenPub Base Plugin Test Suite"
+ - ./vendor/bin/phpunit --testsuite "Unit Test Suite"
+ - step:
+ name: Deploy docs to production
+ caches:
+ - composer
+ - vendor-directory
+ deployment: production
+ script:
+ - apt-get update && apt-get install -y git openssh-server rsync
+ - ssh webdev@web11.yard.nl mkdir -p /data/www/docs.openwebconcept.nl/htdocs/plugins/openpub && rsync -avH ./docs/* -e "ssh" webdev@web11.yard.nl:/data/www/docs.openwebconcept.nl/htdocs/plugins/openpub
+
+ # - step:
+ # name: integration test
+ # caches:
+ # - composer
+ # - vendor-directory
+ # script:
+ # #- service mysql start
+ # - composer install --no-interaction --no-progress --prefer-dist --ignore-platform-reqs
+ # #- chmod +x bin/install-wp-tests.sh
+ # #- bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 latest
+ # #- ./vendor/bin/phpunit --testsuite "Integration Test"
definitions:
caches:
- vendor-directory: vendor
\ No newline at end of file
+ vendor-directory: vendor
+
+ services:
+ mysql:
+ image: mysql:5.7
+ environment:
+ MYSQL_DATABASE: 'wordpress_test'
+ MYSQL_ROOT_PASSWORD: 'root'
diff --git a/composer.json b/composer.json
index 30b03f3..80b2204 100644
--- a/composer.json
+++ b/composer.json
@@ -1,11 +1,11 @@
{
"name": "plugin/openpub-base",
"description": "OpenPub base plugin",
- "homepage": "https://www.yardinternet.nl",
"authors": [
{
"name": "Yard Internet",
- "email": "info@yard.nl"
+ "email": "info@yard.nl",
+ "homepage": "https://www.yardinternet.nl"
}
],
"type": "wordpress-plugin",
@@ -13,10 +13,6 @@
{
"type": "composer",
"url": "https://wpackagist.org"
- },
- {
- "type": "vcs",
- "url": "git@bitbucket.org:yardinternet/phpcs.git"
}
],
"require": {
@@ -24,26 +20,30 @@
"wpackagist-plugin/elasticpress": "2.*"
},
"require-dev": {
- "mockery/mockery": "~1.0",
- "phpunit/phpunit": "~6.0",
+ "mockery/mockery": "1.0.*",
+ "phpunit/phpunit": "~7.0",
"10up/wp_mock": "dev-master",
- "yard/phpcs":"dev-master",
- "phpmd/phpmd": "@stable"
+ "phpdocumentor/phpdocumentor": "2.*",
+ "squizlabs/php_codesniffer": "^3.0.2"
+ },
+ "autoload": {
+ "psr-4": {
+ "OWC\\OpenPub\\Base\\": "./src/Base"
+ }
},
"autoload-dev": {
"psr-4": {
- "OWC\\OpenPub\\Base\\": "./src/Base",
"OWC\\OpenPub\\Base\\Tests\\": "./tests"
}
},
"scripts": {
- "lint": "clear && ./vendor/bin/phpcs .",
- "unit": "clear && ./vendor/bin/phpunit --testsuite 'Unit Test' --colors=always",
- "unit-cover": "clear && ./vendor/bin/phpunit --testsuite 'Unit Test' --colors=always --coverage-html ./tests/coverage",
- "integration": "clear && ./vendor/bin/phpunit --testsuite 'Integration Test' --colors=always",
+ "unit": "clear && ./vendor/bin/phpunit --testsuite 'Unit Test Suite' --colors=always",
+ "unit-coverage": "clear && ./vendor/bin/phpunit --testsuite 'Unit Test Suite' --colors=always --coverage-html ./tests/coverage",
+ "integration": "clear && ./vendor/bin/phpunit --testsuite 'Integration Test Suite' --colors=always",
"test": [
"@unit",
"@integration"
- ]
+ ],
+ "docs": "./vendor/bin/phpdoc -d ./src/Base -t ./docs"
}
}
diff --git a/composer.lock b/composer.lock
index f5942c5..ec4c7dd 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "c1278f27346cd5b6b914b7822db2fed0",
+ "content-hash": "7ea15d5988366e4afa169a65bebde70e",
"packages": [
{
"name": "composer/installers",
@@ -231,38 +231,44 @@
"time": "2018-02-19T18:52:50+00:00"
},
{
- "name": "doctrine/instantiator",
+ "name": "cilex/cilex",
"version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
+ "url": "https://github.com/Cilex/Cilex.git",
+ "reference": "7acd965a609a56d0345e8b6071c261fbdb926cb5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
- "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
+ "url": "https://api.github.com/repos/Cilex/Cilex/zipball/7acd965a609a56d0345e8b6071c261fbdb926cb5",
+ "reference": "7acd965a609a56d0345e8b6071c261fbdb926cb5",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "cilex/console-service-provider": "1.*",
+ "php": ">=5.3.3",
+ "pimple/pimple": "~1.0",
+ "symfony/finder": "~2.1",
+ "symfony/process": "~2.1"
},
"require-dev": {
- "athletic/athletic": "~0.1.8",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpunit/phpunit": "^6.2.3",
- "squizlabs/php_codesniffer": "^3.0.2"
+ "phpunit/phpunit": "3.7.*",
+ "symfony/validator": "~2.1"
+ },
+ "suggest": {
+ "monolog/monolog": ">=1.0.0",
+ "symfony/validator": ">=1.0.0",
+ "symfony/yaml": ">=1.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2.x-dev"
+ "dev-master": "1.0-dev"
}
},
"autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ "psr-0": {
+ "Cilex": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -271,239 +277,246 @@
],
"authors": [
{
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "http://ocramius.github.com/"
+ "name": "Mike van Riel",
+ "email": "mike.vanriel@naenius.com"
}
],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://github.com/doctrine/instantiator",
+ "description": "The PHP micro-framework for Command line tools based on the Symfony2 Components",
+ "homepage": "http://cilex.github.com",
"keywords": [
- "constructor",
- "instantiate"
+ "cli",
+ "microframework"
],
- "time": "2017-07-22T11:58:36+00:00"
+ "time": "2014-03-29T14:03:13+00:00"
},
{
- "name": "hamcrest/hamcrest-php",
- "version": "v2.0.0",
+ "name": "cilex/console-service-provider",
+ "version": "1.0.0",
"source": {
"type": "git",
- "url": "https://github.com/hamcrest/hamcrest-php.git",
- "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad"
+ "url": "https://github.com/Cilex/console-service-provider.git",
+ "reference": "25ee3d1875243d38e1a3448ff94bdf944f70d24e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad",
- "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad",
+ "url": "https://api.github.com/repos/Cilex/console-service-provider/zipball/25ee3d1875243d38e1a3448ff94bdf944f70d24e",
+ "reference": "25ee3d1875243d38e1a3448ff94bdf944f70d24e",
"shasum": ""
},
"require": {
- "php": "^5.3|^7.0"
- },
- "replace": {
- "cordoval/hamcrest-php": "*",
- "davedevelopment/hamcrest-php": "*",
- "kodova/hamcrest-php": "*"
+ "php": ">=5.3.3",
+ "pimple/pimple": "1.*@dev",
+ "symfony/console": "~2.1"
},
"require-dev": {
- "phpunit/php-file-iterator": "1.3.3",
- "phpunit/phpunit": "~4.0",
- "satooshi/php-coveralls": "^1.0"
+ "cilex/cilex": "1.*@dev",
+ "silex/silex": "1.*@dev"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-master": "1.0-dev"
}
},
"autoload": {
- "classmap": [
- "hamcrest"
- ]
+ "psr-0": {
+ "Cilex\\Provider\\Console": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD"
+ "MIT"
],
- "description": "This is the PHP port of Hamcrest Matchers",
+ "authors": [
+ {
+ "name": "Beau Simensen",
+ "email": "beau@dflydev.com",
+ "homepage": "http://beausimensen.com"
+ },
+ {
+ "name": "Mike van Riel",
+ "email": "mike.vanriel@naenius.com"
+ }
+ ],
+ "description": "Console Service Provider",
"keywords": [
- "test"
+ "cilex",
+ "console",
+ "pimple",
+ "service-provider",
+ "silex"
],
- "time": "2016-01-20T08:20:44+00:00"
+ "time": "2012-12-19T10:50:58+00:00"
},
{
- "name": "mockery/mockery",
+ "name": "container-interop/container-interop",
"version": "1.2.0",
"source": {
"type": "git",
- "url": "https://github.com/mockery/mockery.git",
- "reference": "100633629bf76d57430b86b7098cd6beb996a35a"
+ "url": "https://github.com/container-interop/container-interop.git",
+ "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/100633629bf76d57430b86b7098cd6beb996a35a",
- "reference": "100633629bf76d57430b86b7098cd6beb996a35a",
+ "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
+ "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
"shasum": ""
},
"require": {
- "hamcrest/hamcrest-php": "~2.0",
- "lib-pcre": ">=7.0",
- "php": ">=5.6.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~5.7.10|~6.5|~7.0"
+ "psr/container": "^1.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
"autoload": {
- "psr-0": {
- "Mockery": "library/"
+ "psr-4": {
+ "Interop\\Container\\": "src/Interop/Container/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Pádraic Brady",
- "email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
- },
- {
- "name": "Dave Marshall",
- "email": "dave.marshall@atstsolutions.co.uk",
- "homepage": "http://davedevelopment.co.uk"
- }
- ],
- "description": "Mockery is a simple yet flexible PHP mock object framework",
- "homepage": "https://github.com/mockery/mockery",
- "keywords": [
- "BDD",
- "TDD",
- "library",
- "mock",
- "mock objects",
- "mockery",
- "stub",
- "test",
- "test double",
- "testing"
+ "MIT"
],
- "time": "2018-10-02T21:52:37+00:00"
+ "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
+ "homepage": "https://github.com/container-interop/container-interop",
+ "time": "2017-02-14T19:40:03+00:00"
},
{
- "name": "myclabs/deep-copy",
- "version": "1.8.1",
+ "name": "doctrine/annotations",
+ "version": "v1.6.0",
"source": {
"type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8"
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
- "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
+ "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
"shasum": ""
},
"require": {
+ "doctrine/lexer": "1.*",
"php": "^7.1"
},
- "replace": {
- "myclabs/deep-copy": "self.version"
- },
"require-dev": {
- "doctrine/collections": "^1.0",
- "doctrine/common": "^2.6",
- "phpunit/phpunit": "^7.1"
+ "doctrine/cache": "1.*",
+ "phpunit/phpunit": "^6.4"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
- },
- "files": [
- "src/DeepCopy/deep_copy.php"
- ]
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "Create deep copies (clones) of your objects",
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Docblock Annotations Parser",
+ "homepage": "http://www.doctrine-project.org",
"keywords": [
- "clone",
- "copy",
- "duplicate",
- "object",
- "object graph"
+ "annotations",
+ "docblock",
+ "parser"
],
- "time": "2018-06-11T23:09:50+00:00"
+ "time": "2017-12-06T07:11:42+00:00"
},
{
- "name": "pdepend/pdepend",
- "version": "2.5.2",
+ "name": "doctrine/instantiator",
+ "version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/pdepend/pdepend.git",
- "reference": "9daf26d0368d4a12bed1cacae1a9f3a6f0adf239"
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pdepend/pdepend/zipball/9daf26d0368d4a12bed1cacae1a9f3a6f0adf239",
- "reference": "9daf26d0368d4a12bed1cacae1a9f3a6f0adf239",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
+ "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
"shasum": ""
},
"require": {
- "php": ">=5.3.7",
- "symfony/config": "^2.3.0|^3|^4",
- "symfony/dependency-injection": "^2.3.0|^3|^4",
- "symfony/filesystem": "^2.3.0|^3|^4"
+ "php": "^7.1"
},
"require-dev": {
- "phpunit/phpunit": "^4.8|^5.7",
- "squizlabs/php_codesniffer": "^2.0.0"
+ "athletic/athletic": "~0.1.8",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpunit/phpunit": "^6.2.3",
+ "squizlabs/php_codesniffer": "^3.0.2"
},
- "bin": [
- "src/bin/pdepend"
- ],
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "PDepend\\": "src/main/php/PDepend"
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "http://ocramius.github.com/"
+ }
],
- "description": "Official version of pdepend to be handled with Composer",
- "time": "2017-12-13T13:21:38+00:00"
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://github.com/doctrine/instantiator",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "time": "2017-07-22T11:58:36+00:00"
},
{
- "name": "phar-io/manifest",
- "version": "1.0.1",
+ "name": "doctrine/lexer",
+ "version": "v1.0.1",
"source": {
"type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0",
- "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
+ "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-phar": "*",
- "phar-io/version": "^1.0.1",
- "php": "^5.6 || ^7.0"
+ "php": ">=5.3.2"
},
"type": "library",
"extra": {
@@ -512,171 +525,167 @@
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-0": {
+ "Doctrine\\Common\\Lexer\\": "lib/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
},
{
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
},
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
}
],
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
- "time": "2017-03-05T18:14:27+00:00"
+ "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "lexer",
+ "parser"
+ ],
+ "time": "2014-09-09T13:34:57+00:00"
},
{
- "name": "phar-io/version",
- "version": "1.0.1",
+ "name": "erusev/parsedown",
+ "version": "1.7.1",
"source": {
"type": "git",
- "url": "https://github.com/phar-io/version.git",
- "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
+ "url": "https://github.com/erusev/parsedown.git",
+ "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df",
- "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
+ "url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
+ "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
+ "ext-mbstring": "*",
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35"
},
"type": "library",
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-0": {
+ "Parsedown": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
+ "name": "Emanuil Rusev",
+ "email": "hello@erusev.com",
+ "homepage": "http://erusev.com"
}
],
- "description": "Library for handling version information and constraints",
- "time": "2017-03-05T17:38:23+00:00"
+ "description": "Parser for Markdown.",
+ "homepage": "http://parsedown.org",
+ "keywords": [
+ "markdown",
+ "parser"
+ ],
+ "time": "2018-03-08T01:11:30+00:00"
},
{
- "name": "phpdocumentor/reflection-common",
- "version": "1.0.1",
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.0",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad",
+ "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad",
"shasum": ""
},
"require": {
- "php": ">=5.5"
+ "php": "^5.3|^7.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
},
"require-dev": {
- "phpunit/phpunit": "^4.6"
+ "phpunit/php-file-iterator": "1.3.3",
+ "phpunit/phpunit": "~4.0",
+ "satooshi/php-coveralls": "^1.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src"
- ]
- }
+ "classmap": [
+ "hamcrest"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
+ "BSD"
],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
+ "description": "This is the PHP port of Hamcrest Matchers",
"keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
+ "test"
],
- "time": "2017-09-11T18:02:19+00:00"
+ "time": "2016-01-20T08:20:44+00:00"
},
{
- "name": "phpdocumentor/reflection-docblock",
- "version": "4.3.0",
+ "name": "herrera-io/json",
+ "version": "1.0.3",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
+ "url": "https://github.com/kherge-php/json.git",
+ "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
- "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
+ "url": "https://api.github.com/repos/kherge-php/json/zipball/60c696c9370a1e5136816ca557c17f82a6fa83f1",
+ "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "phpdocumentor/reflection-common": "^1.0.0",
- "phpdocumentor/type-resolver": "^0.4.0",
- "webmozart/assert": "^1.0"
+ "ext-json": "*",
+ "justinrainbow/json-schema": ">=1.0,<2.0-dev",
+ "php": ">=5.3.3",
+ "seld/jsonlint": ">=1.0,<2.0-dev"
},
"require-dev": {
- "doctrine/instantiator": "~1.0.5",
- "mockery/mockery": "^1.0",
- "phpunit/phpunit": "^6.4"
+ "herrera-io/phpunit-test-case": "1.*",
+ "mikey179/vfsstream": "1.1.0",
+ "phpunit/phpunit": "3.7.*"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.x-dev"
+ "dev-master": "1.0-dev"
}
},
"autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
+ "files": [
+ "src/lib/json_version.php"
+ ],
+ "psr-0": {
+ "Herrera\\Json": "src/lib"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -685,46 +694,58 @@
],
"authors": [
{
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
+ "name": "Kevin Herrera",
+ "email": "kevin@herrera.io",
+ "homepage": "http://kevin.herrera.io"
}
],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2017-11-30T07:14:17+00:00"
+ "description": "A library for simplifying JSON linting and validation.",
+ "homepage": "http://herrera-io.github.com/php-json",
+ "keywords": [
+ "json",
+ "lint",
+ "schema",
+ "validate"
+ ],
+ "abandoned": "kherge/json",
+ "time": "2013-10-30T16:51:34+00:00"
},
{
- "name": "phpdocumentor/type-resolver",
- "version": "0.4.0",
+ "name": "herrera-io/phar-update",
+ "version": "1.0.3",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
+ "url": "https://github.com/kherge-abandoned/php-phar-update.git",
+ "reference": "00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
+ "url": "https://api.github.com/repos/kherge-abandoned/php-phar-update/zipball/00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b",
+ "reference": "00a79e1d5b8cf3c080a2e3becf1ddf7a7fea025b",
"shasum": ""
},
"require": {
- "php": "^5.5 || ^7.0",
- "phpdocumentor/reflection-common": "^1.0"
+ "herrera-io/json": "1.*",
+ "kherge/version": "1.*",
+ "php": ">=5.3.3"
},
"require-dev": {
- "mockery/mockery": "^0.9.4",
- "phpunit/phpunit": "^5.2||^4.8.24"
+ "herrera-io/phpunit-test-case": "1.*",
+ "mikey179/vfsstream": "1.1.0",
+ "phpunit/phpunit": "3.7.*"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "1.0-dev"
}
},
"autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
+ "files": [
+ "src/lib/constants.php"
+ ],
+ "psr-0": {
+ "Herrera\\Phar\\Update": "src/lib"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -733,231 +754,225 @@
],
"authors": [
{
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
+ "name": "Kevin Herrera",
+ "email": "kevin@herrera.io",
+ "homepage": "http://kevin.herrera.io"
}
],
- "time": "2017-07-14T14:27:02+00:00"
+ "description": "A library for self-updating Phars.",
+ "homepage": "http://herrera-io.github.com/php-phar-update",
+ "keywords": [
+ "phar",
+ "update"
+ ],
+ "abandoned": true,
+ "time": "2013-10-30T17:23:01+00:00"
},
{
- "name": "phpmd/phpmd",
- "version": "2.6.0",
+ "name": "jms/metadata",
+ "version": "1.6.0",
"source": {
"type": "git",
- "url": "https://github.com/phpmd/phpmd.git",
- "reference": "4e9924b2c157a3eb64395460fcf56b31badc8374"
+ "url": "https://github.com/schmittjoh/metadata.git",
+ "reference": "6a06970a10e0a532fb52d3959547123b84a3b3ab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpmd/phpmd/zipball/4e9924b2c157a3eb64395460fcf56b31badc8374",
- "reference": "4e9924b2c157a3eb64395460fcf56b31badc8374",
+ "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/6a06970a10e0a532fb52d3959547123b84a3b3ab",
+ "reference": "6a06970a10e0a532fb52d3959547123b84a3b3ab",
"shasum": ""
},
"require": {
- "ext-xml": "*",
- "pdepend/pdepend": "^2.5",
- "php": ">=5.3.9"
+ "php": ">=5.3.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0",
- "squizlabs/php_codesniffer": "^2.0"
+ "doctrine/cache": "~1.0",
+ "symfony/cache": "~3.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.5.x-dev"
+ }
},
- "bin": [
- "src/bin/phpmd"
- ],
- "type": "project",
"autoload": {
"psr-0": {
- "PHPMD\\": "src/main/php"
+ "Metadata\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "Apache-2.0"
],
"authors": [
{
- "name": "Manuel Pichler",
- "email": "github@manuel-pichler.de",
- "homepage": "https://github.com/manuelpichler",
- "role": "Project Founder"
- },
- {
- "name": "Other contributors",
- "homepage": "https://github.com/phpmd/phpmd/graphs/contributors",
- "role": "Contributors"
- },
- {
- "name": "Marc Würth",
- "email": "ravage@bluewin.ch",
- "homepage": "https://github.com/ravage84",
- "role": "Project Maintainer"
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com"
}
],
- "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.",
- "homepage": "http://phpmd.org/",
+ "description": "Class/method/property metadata management in PHP",
"keywords": [
- "mess detection",
- "mess detector",
- "pdepend",
- "phpmd",
- "pmd"
+ "annotations",
+ "metadata",
+ "xml",
+ "yaml"
],
- "time": "2017-01-20T14:41:10+00:00"
+ "time": "2016-12-05T10:18:33+00:00"
},
{
- "name": "phpspec/prophecy",
- "version": "1.8.0",
+ "name": "jms/parser-lib",
+ "version": "1.0.0",
"source": {
"type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06"
+ "url": "https://github.com/schmittjoh/parser-lib.git",
+ "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
- "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
+ "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d",
+ "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.0.2",
- "php": "^5.3|^7.0",
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
- "sebastian/comparator": "^1.1|^2.0|^3.0",
- "sebastian/recursion-context": "^1.0|^2.0|^3.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^2.5|^3.2",
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
+ "phpoption/phpoption": ">=0.9,<2.0-dev"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.8.x-dev"
+ "dev-master": "1.0-dev"
}
},
"autoload": {
"psr-0": {
- "Prophecy\\": "src/"
+ "JMS\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
- },
- {
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
- }
- ],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
- "keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
+ "Apache2"
],
- "time": "2018-08-05T17:53:17+00:00"
+ "description": "A library for easily creating recursive-descent parsers.",
+ "time": "2012-11-18T18:08:43+00:00"
},
{
- "name": "phpunit/php-code-coverage",
- "version": "5.3.2",
+ "name": "jms/serializer",
+ "version": "1.13.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "c89677919c5dd6d3b3852f230a663118762218ac"
+ "url": "https://github.com/schmittjoh/serializer.git",
+ "reference": "00863e1d55b411cc33ad3e1de09a4c8d3aae793c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
- "reference": "c89677919c5dd6d3b3852f230a663118762218ac",
+ "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/00863e1d55b411cc33ad3e1de09a4c8d3aae793c",
+ "reference": "00863e1d55b411cc33ad3e1de09a4c8d3aae793c",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-xmlwriter": "*",
- "php": "^7.0",
- "phpunit/php-file-iterator": "^1.4.2",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-token-stream": "^2.0.1",
- "sebastian/code-unit-reverse-lookup": "^1.0.1",
- "sebastian/environment": "^3.0",
- "sebastian/version": "^2.0.1",
- "theseer/tokenizer": "^1.1"
+ "doctrine/annotations": "^1.0",
+ "doctrine/instantiator": "^1.0.3",
+ "jms/metadata": "^1.3",
+ "jms/parser-lib": "1.*",
+ "php": "^5.5|^7.0",
+ "phpcollection/phpcollection": "~0.1",
+ "phpoption/phpoption": "^1.1"
+ },
+ "conflict": {
+ "twig/twig": "<1.12"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "doctrine/orm": "~2.1",
+ "doctrine/phpcr-odm": "^1.3|^2.0",
+ "ext-pdo_sqlite": "*",
+ "jackalope/jackalope-doctrine-dbal": "^1.1.5",
+ "phpunit/phpunit": "^4.8|^5.0",
+ "propel/propel1": "~1.7",
+ "psr/container": "^1.0",
+ "symfony/dependency-injection": "^2.7|^3.3|^4.0",
+ "symfony/expression-language": "^2.6|^3.0",
+ "symfony/filesystem": "^2.1",
+ "symfony/form": "~2.1|^3.0",
+ "symfony/translation": "^2.1|^3.0",
+ "symfony/validator": "^2.2|^3.0",
+ "symfony/yaml": "^2.1|^3.0",
+ "twig/twig": "~1.12|~2.0"
},
"suggest": {
- "ext-xdebug": "^2.5.5"
+ "doctrine/cache": "Required if you like to use cache functionality.",
+ "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.",
+ "symfony/yaml": "Required if you'd like to serialize data to YAML format."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.3.x-dev"
+ "dev-1.x": "1.13-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-0": {
+ "JMS\\Serializer": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Asmir Mustafic",
+ "email": "goetas@gmail.com"
+ },
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com"
}
],
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.",
+ "homepage": "http://jmsyst.com/libs/serializer",
"keywords": [
- "coverage",
- "testing",
- "xunit"
+ "deserialization",
+ "jaxb",
+ "json",
+ "serialization",
+ "xml"
],
- "time": "2018-04-06T15:36:58+00:00"
+ "time": "2018-07-25T13:58:54+00:00"
},
{
- "name": "phpunit/php-file-iterator",
- "version": "1.4.5",
+ "name": "justinrainbow/json-schema",
+ "version": "1.6.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
+ "url": "https://github.com/justinrainbow/json-schema.git",
+ "reference": "cc84765fb7317f6b07bd8ac78364747f95b86341"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
- "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
+ "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/cc84765fb7317f6b07bd8ac78364747f95b86341",
+ "reference": "cc84765fb7317f6b07bd8ac78364747f95b86341",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=5.3.29"
+ },
+ "require-dev": {
+ "json-schema/json-schema-test-suite": "1.1.0",
+ "phpdocumentor/phpdocumentor": "~2",
+ "phpunit/phpunit": "~3.7"
},
+ "bin": [
+ "bin/validate-json"
+ ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4.x-dev"
+ "dev-master": "1.6.x-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "JsonSchema\\": "src/JsonSchema/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -965,90 +980,105 @@
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
+ "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": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "description": "A library to validate a json schema.",
+ "homepage": "https://github.com/justinrainbow/json-schema",
"keywords": [
- "filesystem",
- "iterator"
+ "json",
+ "schema"
],
- "time": "2017-11-27T13:52:08+00:00"
+ "time": "2016-01-25T15:43:01+00:00"
},
{
- "name": "phpunit/php-text-template",
- "version": "1.2.1",
+ "name": "kherge/version",
+ "version": "1.0.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ "url": "https://github.com/kherge-abandoned/Version.git",
+ "reference": "f07cf83f8ce533be8f93d2893d96d674bbeb7e30"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "url": "https://api.github.com/repos/kherge-abandoned/Version/zipball/f07cf83f8ce533be8f93d2893d96d674bbeb7e30",
+ "reference": "f07cf83f8ce533be8f93d2893d96d674bbeb7e30",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-0": {
+ "KevinGH\\Version": "src/lib/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Kevin Herrera",
+ "email": "me@kevingh.com"
}
],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
- "keywords": [
- "template"
- ],
- "time": "2015-06-21T13:50:34+00:00"
+ "description": "A parsing and comparison library for semantic versioning.",
+ "homepage": "http://github.com/kherge/Version",
+ "abandoned": true,
+ "time": "2012-08-16T17:13:03+00:00"
},
{
- "name": "phpunit/php-timer",
- "version": "1.0.9",
+ "name": "mockery/mockery",
+ "version": "1.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "1bac8c362b12f522fdd1f1fa3556284c91affa38"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/1bac8c362b12f522fdd1f1fa3556284c91affa38",
+ "reference": "1bac8c362b12f522fdd1f1fa3556284c91affa38",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0"
+ "hamcrest/hamcrest-php": "~2.0",
+ "lib-pcre": ">=7.0",
+ "php": ">=5.6.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ "phpunit/phpunit": "~5.7|~6.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-0": {
+ "Mockery": "library/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1056,237 +1086,2242 @@
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
- "role": "lead"
+ "name": "Pádraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "http://blog.astrumfutura.com"
+ },
+ {
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "http://davedevelopment.co.uk"
}
],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.",
+ "homepage": "http://github.com/mockery/mockery",
"keywords": [
- "timer"
+ "BDD",
+ "TDD",
+ "library",
+ "mock",
+ "mock objects",
+ "mockery",
+ "stub",
+ "test",
+ "test double",
+ "testing"
],
- "time": "2017-02-26T11:10:40+00:00"
+ "time": "2017-10-06T16:20:43+00:00"
},
{
- "name": "phpunit/php-token-stream",
- "version": "2.0.2",
+ "name": "monolog/monolog",
+ "version": "1.23.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "791198a2c6254db10131eecfe8c06670700904db"
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
- "reference": "791198a2c6254db10131eecfe8c06670700904db",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4",
+ "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4",
"shasum": ""
},
"require": {
- "ext-tokenizer": "*",
- "php": "^7.0"
+ "php": ">=5.3.0",
+ "psr/log": "~1.0"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0"
},
"require-dev": {
- "phpunit/phpunit": "^6.2.4"
+ "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "graylog2/gelf-php": "~1.0",
+ "jakub-onderka/php-parallel-lint": "0.9",
+ "php-amqplib/php-amqplib": "~2.4",
+ "php-console/php-console": "^3.1.3",
+ "phpunit/phpunit": "~4.5",
+ "phpunit/phpunit-mock-objects": "2.3.0",
+ "ruflin/elastica": ">=0.90 <3.0",
+ "sentry/sentry": "^0.13",
+ "swiftmailer/swiftmailer": "^5.3|^6.0"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-mongo": "Allow sending log messages to a MongoDB server",
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "php-console/php-console": "Allow sending log messages to Google Chrome",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
+ "sentry/sentry": "Allow sending log messages to a Sentry server"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Monolog\\": "src/Monolog"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
}
],
- "description": "Wrapper around PHP's tokenizer extension.",
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "http://github.com/Seldaek/monolog",
"keywords": [
- "tokenizer"
+ "log",
+ "logging",
+ "psr-3"
],
- "time": "2017-11-27T05:48:46+00:00"
+ "time": "2017-06-19T01:22:40+00:00"
},
{
- "name": "phpunit/phpunit",
- "version": "6.5.13",
- "source": {
+ "name": "myclabs/deep-copy",
+ "version": "1.8.1",
+ "source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "0973426fb012359b2f18d3bd1e90ef1172839693"
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
+ "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "replace": {
+ "myclabs/deep-copy": "self.version"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0",
+ "doctrine/common": "^2.6",
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ },
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "time": "2018-06-11T23:09:50+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v1.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
+ "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=5.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "lib/bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "time": "2015-09-19T14:15:08+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0973426fb012359b2f18d3bd1e90ef1172839693",
- "reference": "0973426fb012359b2f18d3bd1e90ef1172839693",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
+ "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
"shasum": ""
},
"require": {
"ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
- "myclabs/deep-copy": "^1.6.1",
- "phar-io/manifest": "^1.0.1",
- "phar-io/version": "^1.0",
- "php": "^7.0",
- "phpspec/prophecy": "^1.7",
- "phpunit/php-code-coverage": "^5.3",
- "phpunit/php-file-iterator": "^1.4.3",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-timer": "^1.0.9",
- "phpunit/phpunit-mock-objects": "^5.0.9",
- "sebastian/comparator": "^2.1",
- "sebastian/diff": "^2.0",
- "sebastian/environment": "^3.1",
- "sebastian/exporter": "^3.1",
- "sebastian/global-state": "^2.0",
- "sebastian/object-enumerator": "^3.0.3",
- "sebastian/resource-operations": "^1.0",
- "sebastian/version": "^2.0.1"
+ "ext-phar": "*",
+ "phar-io/version": "^2.0",
+ "php": "^5.6 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "time": "2018-07-08T19:23:20+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "time": "2018-07-08T19:19:57+00:00"
+ },
+ {
+ "name": "phpcollection/phpcollection",
+ "version": "0.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-collection.git",
+ "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6",
+ "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6",
+ "shasum": ""
+ },
+ "require": {
+ "phpoption/phpoption": "1.*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.4-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "PhpCollection": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache2"
+ ],
+ "authors": [
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "General-Purpose Collection Library for PHP",
+ "keywords": [
+ "collection",
+ "list",
+ "map",
+ "sequence",
+ "set"
+ ],
+ "time": "2015-05-17T12:39:23+00:00"
+ },
+ {
+ "name": "phpdocumentor/fileset",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/Fileset.git",
+ "reference": "bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/Fileset/zipball/bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0",
+ "reference": "bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/finder": "~2.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~3.7"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "phpDocumentor": [
+ "src/",
+ "tests/unit/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Fileset component for collecting a set of files given directories and file paths",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "files",
+ "fileset",
+ "phpdoc"
+ ],
+ "time": "2013-08-06T21:07:42+00:00"
+ },
+ {
+ "name": "phpdocumentor/graphviz",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/GraphViz.git",
+ "reference": "a906a90a9f230535f25ea31caf81b2323956283f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/GraphViz/zipball/a906a90a9f230535f25ea31caf81b2323956283f",
+ "reference": "a906a90a9f230535f25ea31caf81b2323956283f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "phpDocumentor": [
+ "src/",
+ "tests/unit"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "mike.vanriel@naenius.com"
+ }
+ ],
+ "time": "2016-02-02T13:00:08+00:00"
+ },
+ {
+ "name": "phpdocumentor/phpdocumentor",
+ "version": "v2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/phpDocumentor2.git",
+ "reference": "be607da0eef9b9249c43c5b4820d25d631c73667"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/phpDocumentor2/zipball/be607da0eef9b9249c43c5b4820d25d631c73667",
+ "reference": "be607da0eef9b9249c43c5b4820d25d631c73667",
+ "shasum": ""
+ },
+ "require": {
+ "cilex/cilex": "~1.0",
+ "erusev/parsedown": "~1.0",
+ "herrera-io/phar-update": "1.0.3",
+ "jms/serializer": ">=0.12",
+ "monolog/monolog": "~1.6",
+ "php": ">=5.3.3",
+ "phpdocumentor/fileset": "~1.0",
+ "phpdocumentor/graphviz": "~1.0",
+ "phpdocumentor/reflection": "^3.0",
+ "phpdocumentor/reflection-docblock": "~2.0",
+ "symfony/config": "~2.3",
+ "symfony/console": "~2.3",
+ "symfony/event-dispatcher": "~2.1",
+ "symfony/process": "~2.0",
+ "symfony/stopwatch": "~2.3",
+ "symfony/validator": "~2.2",
+ "twig/twig": "~1.3",
+ "zendframework/zend-cache": "~2.1",
+ "zendframework/zend-config": "~2.1",
+ "zendframework/zend-filter": "~2.1",
+ "zendframework/zend-i18n": "~2.1",
+ "zendframework/zend-serializer": "~2.1",
+ "zendframework/zend-servicemanager": "~2.1",
+ "zendframework/zend-stdlib": "~2.1",
+ "zetacomponents/document": ">=1.3.1"
+ },
+ "require-dev": {
+ "behat/behat": "~3.0",
+ "mikey179/vfsstream": "~1.2",
+ "mockery/mockery": "~0.9@dev",
+ "phpunit/phpunit": "~4.0",
+ "squizlabs/php_codesniffer": "~1.4",
+ "symfony/expression-language": "~2.4"
+ },
+ "suggest": {
+ "ext-twig": "Enabling the twig extension improves the generation of twig based templates.",
+ "ext-xslcache": "Enabling the XSLCache extension improves the generation of xml based templates."
+ },
+ "bin": [
+ "bin/phpdoc.php",
+ "bin/phpdoc"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-develop": "2.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "phpDocumentor": [
+ "src/",
+ "tests/unit/"
+ ],
+ "Cilex\\Provider": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Documentation Generator for PHP",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "api",
+ "application",
+ "dga",
+ "documentation",
+ "phpdoc"
+ ],
+ "time": "2016-05-22T09:50:56+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/Reflection.git",
+ "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/Reflection/zipball/793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d",
+ "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^1.0",
+ "php": ">=5.3.3",
+ "phpdocumentor/reflection-docblock": "~2.0",
+ "psr/log": "~1.0"
+ },
+ "require-dev": {
+ "behat/behat": "~2.4",
+ "mockery/mockery": "~0.8",
+ "phpunit/phpunit": "~4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "phpDocumentor": [
+ "src/",
+ "tests/unit/",
+ "tests/mocks/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Reflection library to do Static Analysis for PHP Projects",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "time": "2016-05-21T08:42:32+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "2.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
+ "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0"
+ },
+ "suggest": {
+ "dflydev/markdown": "~1.0",
+ "erusev/parsedown": "~1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "phpDocumentor": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "mike.vanriel@naenius.com"
+ }
+ ],
+ "time": "2016-01-25T08:17:30+00:00"
+ },
+ {
+ "name": "phpoption/phpoption",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed",
+ "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.7.*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "PhpOption\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache2"
+ ],
+ "authors": [
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Option Type for PHP",
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
+ "time": "2015-07-25T16:39:46+00:00"
+ },
+ {
+ "name": "phpspec/prophecy",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
+ "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "php": "^5.3|^7.0",
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
+ "sebastian/comparator": "^1.1|^2.0|^3.0",
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^2.5|^3.2",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.8.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Prophecy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ },
+ {
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
+ }
+ ],
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
+ "time": "2018-08-05T17:53:17+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "6.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "848f78b3309780fef7ec8c4666b7ab4e6b09b22f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/848f78b3309780fef7ec8c4666b7ab4e6b09b22f",
+ "reference": "848f78b3309780fef7ec8c4666b7ab4e6b09b22f",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.1",
+ "phpunit/php-file-iterator": "^2.0",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-token-stream": "^3.0",
+ "sebastian/code-unit-reverse-lookup": "^1.0.1",
+ "sebastian/environment": "^3.1",
+ "sebastian/version": "^2.0.1",
+ "theseer/tokenizer": "^1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "suggest": {
+ "ext-xdebug": "^2.6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "time": "2018-10-04T03:41:23+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "050bedf145a257b1ff02746c31894800e5122946"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946",
+ "reference": "050bedf145a257b1ff02746c31894800e5122946",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "time": "2018-09-13T20:33:42+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "time": "2015-06-21T13:50:34+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f",
+ "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "time": "2018-02-01T13:07:23+00:00"
+ },
+ {
+ "name": "phpunit/php-token-stream",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+ "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/21ad88bbba7c3d93530d93994e0a33cd45f02ace",
+ "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Wrapper around PHP's tokenizer extension.",
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "keywords": [
+ "tokenizer"
+ ],
+ "time": "2018-02-01T13:16:43+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "7.3.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "7b331efabbb628c518c408fdfcaf571156775de2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7b331efabbb628c518c408fdfcaf571156775de2",
+ "reference": "7b331efabbb628c518c408fdfcaf571156775de2",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.1",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "myclabs/deep-copy": "^1.7",
+ "phar-io/manifest": "^1.0.2",
+ "phar-io/version": "^2.0",
+ "php": "^7.1",
+ "phpspec/prophecy": "^1.7",
+ "phpunit/php-code-coverage": "^6.0.7",
+ "phpunit/php-file-iterator": "^2.0.1",
+ "phpunit/php-text-template": "^1.2.1",
+ "phpunit/php-timer": "^2.0",
+ "sebastian/comparator": "^3.0",
+ "sebastian/diff": "^3.0",
+ "sebastian/environment": "^3.1",
+ "sebastian/exporter": "^3.1",
+ "sebastian/global-state": "^2.0",
+ "sebastian/object-enumerator": "^3.0.3",
+ "sebastian/resource-operations": "^1.0",
+ "sebastian/version": "^2.0.1"
+ },
+ "conflict": {
+ "phpunit/phpunit-mock-objects": "*"
+ },
+ "require-dev": {
+ "ext-pdo": "*"
+ },
+ "suggest": {
+ "ext-soap": "*",
+ "ext-xdebug": "*",
+ "phpunit/php-invoker": "^2.0"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.3-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "time": "2018-09-08T15:14:29+00:00"
+ },
+ {
+ "name": "pimple/pimple",
+ "version": "v1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/silexphp/Pimple.git",
+ "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d",
+ "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Pimple": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Pimple is a simple Dependency Injection Container for PHP 5.3",
+ "homepage": "http://pimple.sensiolabs.org",
+ "keywords": [
+ "container",
+ "dependency injection"
+ ],
+ "time": "2013-11-22T08:30:29+00:00"
+ },
+ {
+ "name": "psr/cache",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
+ "time": "2016-08-06T20:24:11+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.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.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": "2016-10-10T12:19:37+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "time": "2017-10-23T01:57:42+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7 || ^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "time": "2017-03-04T06:30:41+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1",
+ "sebastian/diff": "^3.0",
+ "sebastian/exporter": "^3.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "time": "2018-07-12T15:12:46+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "366541b989927187c4ca70490a35615d3fef2dce"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/366541b989927187c4ca70490a35615d3fef2dce",
+ "reference": "366541b989927187c4ca70490a35615d3fef2dce",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0",
+ "symfony/process": "^2 || ^3.3 || ^4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "time": "2018-06-10T07:54:39+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
+ "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "time": "2017-07-01T08:51:00+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937",
+ "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "time": "2017-04-03T13:19:02+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
+ "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "time": "2017-04-27T15:39:26+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0",
+ "sebastian/object-reflector": "^1.1.1",
+ "sebastian/recursion-context": "^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "time": "2017-08-03T12:35:26+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "773f97c67f28de00d397be301821b06708fca0be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
+ "reference": "773f97c67f28de00d397be301821b06708fca0be",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "time": "2017-03-29T09:07:27+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "time": "2017-03-03T06:23:57+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "time": "2015-07-28T20:34:47+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "time": "2016-10-03T07:35:21+00:00"
+ },
+ {
+ "name": "seld/jsonlint",
+ "version": "1.7.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/jsonlint.git",
+ "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/d15f59a67ff805a44c50ea0516d2341740f81a38",
+ "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38",
+ "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": "2018-01-24T12:46:19+00:00"
+ },
+ {
+ "name": "squizlabs/php_codesniffer",
+ "version": "3.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
+ "reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/6ad28354c04b364c3c71a34e4a18b629cc3b231e",
+ "reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e",
+ "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": "http://www.squizlabs.com/php-codesniffer",
+ "keywords": [
+ "phpcs",
+ "standards"
+ ],
+ "time": "2018-09-23T23:08:17+00:00"
+ },
+ {
+ "name": "symfony/config",
+ "version": "v2.8.46",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/config.git",
+ "reference": "fb3469266daaa67a1e6d42fc78fa6cdc254689f6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/config/zipball/fb3469266daaa67a1e6d42fc78fa6cdc254689f6",
+ "reference": "fb3469266daaa67a1e6d42fc78fa6cdc254689f6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9",
+ "symfony/filesystem": "~2.3|~3.0.0",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "require-dev": {
+ "symfony/yaml": "~2.7|~3.0.0"
+ },
+ "suggest": {
+ "symfony/yaml": "To use the yaml reference dumper"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.8-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Config\\": ""
+ },
+ "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 Config Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-09-08T12:44:02+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v2.8.46",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "aca0dcc0c75496e17e2aa0303bb9c8e6d79ed789"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/aca0dcc0c75496e17e2aa0303bb9c8e6d79ed789",
+ "reference": "aca0dcc0c75496e17e2aa0303bb9c8e6d79ed789",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9",
+ "symfony/debug": "^2.7.2|~3.0.0",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/event-dispatcher": "~2.1|~3.0.0",
+ "symfony/process": "~2.1|~3.0.0"
+ },
+ "suggest": {
+ "psr/log-implementation": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.8-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": "2018-09-30T03:33:07+00:00"
+ },
+ {
+ "name": "symfony/debug",
+ "version": "v3.0.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/debug.git",
+ "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/697c527acd9ea1b2d3efac34d9806bf255278b0a",
+ "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5.9",
+ "psr/log": "~1.0"
},
"conflict": {
- "phpdocumentor/reflection-docblock": "3.0.2",
- "phpunit/dbunit": "<3.0"
+ "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
},
"require-dev": {
- "ext-pdo": "*"
+ "symfony/class-loader": "~2.8|~3.0",
+ "symfony/http-kernel": "~2.8|~3.0"
},
- "suggest": {
- "ext-xdebug": "*",
- "phpunit/php-invoker": "^1.1"
- },
- "bin": [
- "phpunit"
- ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "6.5.x-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Debug\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
- "keywords": [
- "phpunit",
- "testing",
- "xunit"
- ],
- "time": "2018-09-08T15:10:43+00:00"
+ "description": "Symfony Debug Component",
+ "homepage": "https://symfony.com",
+ "time": "2016-07-30T07:22:48+00:00"
},
{
- "name": "phpunit/phpunit-mock-objects",
- "version": "5.0.10",
+ "name": "symfony/event-dispatcher",
+ "version": "v2.8.46",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
- "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f"
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "84ae343f39947aa084426ed1138bb96bf94d1f12"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f",
- "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/84ae343f39947aa084426ed1138bb96bf94d1f12",
+ "reference": "84ae343f39947aa084426ed1138bb96bf94d1f12",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.0.5",
- "php": "^7.0",
- "phpunit/php-text-template": "^1.2.1",
- "sebastian/exporter": "^3.1"
- },
- "conflict": {
- "phpunit/phpunit": "<6.0"
+ "php": ">=5.3.9"
},
"require-dev": {
- "phpunit/phpunit": "^6.5.11"
+ "psr/log": "~1.0",
+ "symfony/config": "^2.0.5|~3.0.0",
+ "symfony/dependency-injection": "~2.6|~3.0.0",
+ "symfony/expression-language": "~2.6|~3.0.0",
+ "symfony/stopwatch": "~2.3|~3.0.0"
},
"suggest": {
- "ext-soap": "*"
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0.x-dev"
+ "dev-master": "2.8-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Mock Object library for PHPUnit",
- "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
- "keywords": [
- "mock",
- "xunit"
- ],
- "time": "2018-08-09T05:50:03+00:00"
+ "description": "Symfony EventDispatcher Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-07-26T09:03:18+00:00"
},
{
- "name": "psr/container",
- "version": "1.0.0",
+ "name": "symfony/filesystem",
+ "version": "v3.0.9",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "b2da5009d9bacbd91d83486aa1f44c793a8c380d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/b2da5009d9bacbd91d83486aa1f44c793a8c380d",
+ "reference": "b2da5009d9bacbd91d83486aa1f44c793a8c380d",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=5.5.9"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Container\\": "src/"
- }
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1294,423 +3329,441 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "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"
+ "description": "Symfony Filesystem Component",
+ "homepage": "https://symfony.com",
+ "time": "2016-07-20T05:43:46+00:00"
},
{
- "name": "sebastian/code-unit-reverse-lookup",
- "version": "1.0.1",
+ "name": "symfony/finder",
+ "version": "v2.8.46",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "5ebb438d1aabe9dba93099dd06e0500f97817a6e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/5ebb438d1aabe9dba93099dd06e0500f97817a6e",
+ "reference": "5ebb438d1aabe9dba93099dd06e0500f97817a6e",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.0"
+ "php": ">=5.3.9"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.8-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Looks up which function or method a line of code belongs to",
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
- "time": "2017-03-04T06:30:41+00:00"
+ "description": "Symfony Finder Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-09-21T12:46:38+00:00"
},
{
- "name": "sebastian/comparator",
- "version": "2.1.3",
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.9.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9"
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9",
- "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
+ "reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "sebastian/diff": "^2.0 || ^3.0",
- "sebastian/exporter": "^3.1"
+ "php": ">=5.3.3"
},
- "require-dev": {
- "phpunit/phpunit": "^6.4"
+ "suggest": {
+ "ext-ctype": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1.x-dev"
+ "dev-master": "1.9-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
},
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
}
],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "https://github.com/sebastianbergmann/comparator",
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
"keywords": [
- "comparator",
- "compare",
- "equality"
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
],
- "time": "2018-02-01T13:46:46+00:00"
+ "time": "2018-08-06T14:22:27+00:00"
},
{
- "name": "sebastian/diff",
- "version": "2.0.1",
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.9.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd"
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
- "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d0cd638f4634c16d8df4508e847f14e9e43168b8",
+ "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "php": ">=5.3.3"
},
- "require-dev": {
- "phpunit/phpunit": "^6.2"
+ "suggest": {
+ "ext-mbstring": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-master": "1.9-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
"keywords": [
- "diff"
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
],
- "time": "2017-08-03T08:09:46+00:00"
+ "time": "2018-08-06T14:22:27+00:00"
},
{
- "name": "sebastian/environment",
- "version": "3.1.0",
+ "name": "symfony/process",
+ "version": "v2.8.46",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
+ "url": "https://github.com/symfony/process.git",
+ "reference": "f09e21b7c5aba06c47bbfad9cbcf13ac7f0db0a6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
- "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
+ "url": "https://api.github.com/repos/symfony/process/zipball/f09e21b7c5aba06c47bbfad9cbcf13ac7f0db0a6",
+ "reference": "f09e21b7c5aba06c47bbfad9cbcf13ac7f0db0a6",
"shasum": ""
},
"require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.1"
+ "php": ">=5.3.9"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "2.8-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
- "keywords": [
- "Xdebug",
- "environment",
- "hhvm"
- ],
- "time": "2017-07-01T08:51:00+00:00"
+ "description": "Symfony Process Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-09-06T17:11:15+00:00"
},
{
- "name": "sebastian/exporter",
- "version": "3.1.0",
+ "name": "symfony/stopwatch",
+ "version": "v2.8.46",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
+ "url": "https://github.com/symfony/stopwatch.git",
+ "reference": "12a4b0c2a1788adf16a5548ab18ab9e8801d71d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937",
- "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/12a4b0c2a1788adf16a5548ab18ab9e8801d71d8",
+ "reference": "12a4b0c2a1788adf16a5548ab18ab9e8801d71d8",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "sebastian/recursion-context": "^3.0"
- },
- "require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^6.0"
+ "php": ">=5.3.9"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "2.8-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Stopwatch\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
- "keywords": [
- "export",
- "exporter"
- ],
- "time": "2017-04-03T13:19:02+00:00"
+ "description": "Symfony Stopwatch Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-07-24T10:05:38+00:00"
},
{
- "name": "sebastian/global-state",
- "version": "2.0.0",
+ "name": "symfony/translation",
+ "version": "v3.0.9",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/eee6c664853fd0576f21ae25725cfffeafe83f26",
+ "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "php": ">=5.5.9",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/config": "<2.8"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "psr/log": "~1.0",
+ "symfony/config": "~2.8|~3.0",
+ "symfony/intl": "~2.8|~3.0",
+ "symfony/yaml": "~2.8|~3.0"
},
"suggest": {
- "ext-uopz": "*"
+ "psr/log": "To use logging capability in translator",
+ "symfony/config": "",
+ "symfony/yaml": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
- "keywords": [
- "global state"
- ],
- "time": "2017-04-27T15:39:26+00:00"
+ "description": "Symfony Translation Component",
+ "homepage": "https://symfony.com",
+ "time": "2016-07-30T07:22:48+00:00"
},
{
- "name": "sebastian/object-enumerator",
- "version": "3.0.3",
+ "name": "symfony/validator",
+ "version": "v2.8.46",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
+ "url": "https://github.com/symfony/validator.git",
+ "reference": "d928358e4e67353784be1816d3830e7097d5cf56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/d928358e4e67353784be1816d3830e7097d5cf56",
+ "reference": "d928358e4e67353784be1816d3830e7097d5cf56",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "sebastian/object-reflector": "^1.1.1",
- "sebastian/recursion-context": "^3.0"
+ "php": ">=5.3.9",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation": "~2.4|~3.0.0"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "doctrine/annotations": "~1.0",
+ "doctrine/cache": "~1.0",
+ "egulias/email-validator": "^1.2.1",
+ "symfony/config": "~2.2|~3.0.0",
+ "symfony/expression-language": "~2.4|~3.0.0",
+ "symfony/http-foundation": "~2.3|~3.0.0",
+ "symfony/intl": "~2.7.25|^2.8.18|~3.2.5",
+ "symfony/property-access": "~2.3|~3.0.0",
+ "symfony/yaml": "^2.0.5|~3.0.0"
+ },
+ "suggest": {
+ "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
+ "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
+ "egulias/email-validator": "Strict (RFC compliant) email validation",
+ "symfony/config": "",
+ "symfony/expression-language": "For using the 2.4 Expression validator",
+ "symfony/http-foundation": "",
+ "symfony/intl": "",
+ "symfony/property-access": "For using the 2.4 Validator API",
+ "symfony/yaml": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0.x-dev"
+ "dev-master": "2.8-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Validator\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
- "time": "2017-08-03T12:35:26+00:00"
+ "description": "Symfony Validator Component",
+ "homepage": "https://symfony.com",
+ "time": "2018-09-25T08:06:01+00:00"
},
{
- "name": "sebastian/object-reflector",
- "version": "1.1.1",
+ "name": "theseer/tokenizer",
+ "version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "773f97c67f28de00d397be301821b06708fca0be"
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
- "reference": "773f97c67f28de00d397be301821b06708fca0be",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b",
+ "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b",
"shasum": ""
},
"require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
"php": "^7.0"
},
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
"autoload": {
"classmap": [
"src/"
@@ -1722,44 +3775,50 @@
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
}
],
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
- "time": "2017-03-29T09:07:27+00:00"
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "time": "2017-04-07T12:08:54+00:00"
},
{
- "name": "sebastian/recursion-context",
- "version": "3.0.0",
+ "name": "twig/twig",
+ "version": "v1.35.4",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
+ "url": "https://github.com/twigphp/Twig.git",
+ "reference": "7e081e98378a1e78c29cc9eba4aefa5d78a05d2a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/7e081e98378a1e78c29cc9eba4aefa5d78a05d2a",
+ "reference": "7e081e98378a1e78c29cc9eba4aefa5d78a05d2a",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "php": ">=5.3.3",
+ "symfony/polyfill-ctype": "^1.8"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "psr/container": "^1.0",
+ "symfony/debug": "^2.7",
+ "symfony/phpunit-bridge": "^3.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0.x-dev"
+ "dev-master": "1.35-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-0": {
+ "Twig_": "lib/"
+ },
+ "psr-4": {
+ "Twig\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1767,634 +3826,749 @@
],
"authors": [
{
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com",
+ "homepage": "http://fabien.potencier.org",
+ "role": "Lead Developer"
},
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Armin Ronacher",
+ "email": "armin.ronacher@active-4.com",
+ "role": "Project Founder"
},
{
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
+ "name": "Twig Team",
+ "homepage": "https://twig.symfony.com/contributors",
+ "role": "Contributors"
}
],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2017-03-03T06:23:57+00:00"
+ "description": "Twig, the flexible, fast, and secure template language for PHP",
+ "homepage": "https://twig.symfony.com",
+ "keywords": [
+ "templating"
+ ],
+ "time": "2018-07-13T07:12:17+00:00"
},
{
- "name": "sebastian/resource-operations",
- "version": "1.0.0",
+ "name": "zendframework/zend-cache",
+ "version": "2.8.2",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
+ "url": "https://github.com/zendframework/zend-cache.git",
+ "reference": "4983dff629956490c78b88adcc8ece4711d7d8a3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
+ "url": "https://api.github.com/repos/zendframework/zend-cache/zipball/4983dff629956490c78b88adcc8ece4711d7d8a3",
+ "reference": "4983dff629956490c78b88adcc8ece4711d7d8a3",
"shasum": ""
},
"require": {
- "php": ">=5.6.0"
+ "php": "^5.6 || ^7.0",
+ "psr/cache": "^1.0",
+ "psr/simple-cache": "^1.0",
+ "zendframework/zend-eventmanager": "^2.6.3 || ^3.2",
+ "zendframework/zend-servicemanager": "^2.7.8 || ^3.3",
+ "zendframework/zend-stdlib": "^2.7.7 || ^3.1"
+ },
+ "provide": {
+ "psr/cache-implementation": "1.0",
+ "psr/simple-cache-implementation": "1.0"
+ },
+ "require-dev": {
+ "cache/integration-tests": "^0.16",
+ "phpbench/phpbench": "^0.13",
+ "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
+ "zendframework/zend-coding-standard": "~1.0.0",
+ "zendframework/zend-serializer": "^2.6",
+ "zendframework/zend-session": "^2.7.4"
+ },
+ "suggest": {
+ "ext-apc": "APC or compatible extension, to use the APC storage adapter",
+ "ext-apcu": "APCU >= 5.1.0, to use the APCu storage adapter",
+ "ext-dba": "DBA, to use the DBA storage adapter",
+ "ext-memcache": "Memcache >= 2.0.0 to use the Memcache storage adapter",
+ "ext-memcached": "Memcached >= 1.0.0 to use the Memcached storage adapter",
+ "ext-mongo": "Mongo, to use MongoDb storage adapter",
+ "ext-mongodb": "MongoDB, to use the ExtMongoDb storage adapter",
+ "ext-redis": "Redis, to use Redis storage adapter",
+ "ext-wincache": "WinCache, to use the WinCache storage adapter",
+ "ext-xcache": "XCache, to use the XCache storage adapter",
+ "mongodb/mongodb": "Required for use with the ext-mongodb adapter",
+ "mongofill/mongofill": "Alternative to ext-mongo - a pure PHP implementation designed as a drop in replacement",
+ "zendframework/zend-serializer": "Zend\\Serializer component",
+ "zendframework/zend-session": "Zend\\Session component"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.8.x-dev",
+ "dev-develop": "2.9.x-dev"
+ },
+ "zf": {
+ "component": "Zend\\Cache",
+ "config-provider": "Zend\\Cache\\ConfigProvider"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "files": [
+ "autoload/patternPluginManagerPolyfill.php"
+ ],
+ "psr-4": {
+ "Zend\\Cache\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
+ "description": "Caching implementation with a variety of storage options, as well as codified caching strategies for callbacks, classes, and output",
+ "keywords": [
+ "ZendFramework",
+ "cache",
+ "psr-16",
+ "psr-6",
+ "zf"
],
- "description": "Provides a list of PHP built-in functions that operate on resources",
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
- "time": "2015-07-28T20:34:47+00:00"
+ "time": "2018-05-01T21:58:00+00:00"
},
{
- "name": "sebastian/version",
- "version": "2.0.1",
+ "name": "zendframework/zend-config",
+ "version": "2.6.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
+ "url": "https://github.com/zendframework/zend-config.git",
+ "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "url": "https://api.github.com/repos/zendframework/zend-config/zipball/2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d",
+ "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d",
"shasum": ""
},
"require": {
- "php": ">=5.6"
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0",
+ "zendframework/zend-filter": "^2.6",
+ "zendframework/zend-i18n": "^2.5",
+ "zendframework/zend-json": "^2.6.1",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
+ },
+ "suggest": {
+ "zendframework/zend-filter": "Zend\\Filter component",
+ "zendframework/zend-i18n": "Zend\\I18n component",
+ "zendframework/zend-json": "Zend\\Json to use the Json reader or writer classes",
+ "zendframework/zend-servicemanager": "Zend\\ServiceManager for use with the Config Factory to retrieve reader and writer instances"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "2.6-dev",
+ "dev-develop": "2.7-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Zend\\Config\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
+ "description": "provides a nested object property based user interface for accessing this configuration data within application code",
+ "homepage": "https://github.com/zendframework/zend-config",
+ "keywords": [
+ "config",
+ "zf2"
],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
- "time": "2016-10-03T07:35:21+00:00"
+ "time": "2016-02-04T23:01:10+00:00"
},
{
- "name": "squizlabs/php_codesniffer",
- "version": "3.3.2",
+ "name": "zendframework/zend-eventmanager",
+ "version": "3.2.1",
"source": {
"type": "git",
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
- "reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e"
+ "url": "https://github.com/zendframework/zend-eventmanager.git",
+ "reference": "a5e2583a211f73604691586b8406ff7296a946dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/6ad28354c04b364c3c71a34e4a18b629cc3b231e",
- "reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e",
+ "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd",
+ "reference": "a5e2583a211f73604691586b8406ff7296a946dd",
"shasum": ""
},
"require": {
- "ext-simplexml": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": ">=5.4.0"
+ "php": "^5.6 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ "athletic/athletic": "^0.1",
+ "container-interop/container-interop": "^1.1.0",
+ "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
+ "zendframework/zend-coding-standard": "~1.0.0",
+ "zendframework/zend-stdlib": "^2.7.3 || ^3.0"
+ },
+ "suggest": {
+ "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
+ "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
},
- "bin": [
- "bin/phpcs",
- "bin/phpcbf"
- ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.x-dev"
+ "dev-master": "3.2-dev",
+ "dev-develop": "3.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\EventManager\\": "src/"
}
},
"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": "http://www.squizlabs.com/php-codesniffer",
+ "description": "Trigger and listen to events within a PHP application",
+ "homepage": "https://github.com/zendframework/zend-eventmanager",
"keywords": [
- "phpcs",
- "standards"
+ "event",
+ "eventmanager",
+ "events",
+ "zf2"
],
- "time": "2018-09-23T23:08:17+00:00"
+ "time": "2018-04-25T15:33:34+00:00"
},
{
- "name": "symfony/config",
- "version": "v4.1.6",
+ "name": "zendframework/zend-filter",
+ "version": "2.8.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/config.git",
- "reference": "b3d4d7b567d7a49e6dfafb6d4760abc921177c96"
+ "url": "https://github.com/zendframework/zend-filter.git",
+ "reference": "7b997dbe79459f1652deccc8786d7407fb66caa9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/b3d4d7b567d7a49e6dfafb6d4760abc921177c96",
- "reference": "b3d4d7b567d7a49e6dfafb6d4760abc921177c96",
+ "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/7b997dbe79459f1652deccc8786d7407fb66caa9",
+ "reference": "7b997dbe79459f1652deccc8786d7407fb66caa9",
"shasum": ""
},
"require": {
- "php": "^7.1.3",
- "symfony/filesystem": "~3.4|~4.0",
- "symfony/polyfill-ctype": "~1.8"
+ "php": "^5.6 || ^7.0",
+ "zendframework/zend-stdlib": "^2.7.7 || ^3.1"
},
"conflict": {
- "symfony/finder": "<3.4"
+ "zendframework/zend-validator": "<2.10.1"
},
"require-dev": {
- "symfony/dependency-injection": "~3.4|~4.0",
- "symfony/event-dispatcher": "~3.4|~4.0",
- "symfony/finder": "~3.4|~4.0",
- "symfony/yaml": "~3.4|~4.0"
+ "pear/archive_tar": "^1.4.3",
+ "phpunit/phpunit": "^5.7.23 || ^6.4.3",
+ "zendframework/zend-coding-standard": "~1.0.0",
+ "zendframework/zend-crypt": "^3.2.1",
+ "zendframework/zend-servicemanager": "^2.7.8 || ^3.3",
+ "zendframework/zend-uri": "^2.6"
},
"suggest": {
- "symfony/yaml": "To use the yaml reference dumper"
+ "zendframework/zend-crypt": "Zend\\Crypt component, for encryption filters",
+ "zendframework/zend-i18n": "Zend\\I18n component for filters depending on i18n functionality",
+ "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for using the filter chain functionality",
+ "zendframework/zend-uri": "Zend\\Uri component, for the UriNormalize filter"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "2.8.x-dev",
+ "dev-develop": "2.9.x-dev"
+ },
+ "zf": {
+ "component": "Zend\\Filter",
+ "config-provider": "Zend\\Filter\\ConfigProvider"
}
},
"autoload": {
"psr-4": {
- "Symfony\\Component\\Config\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Zend\\Filter\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
+ "description": "provides a set of commonly needed data filters",
+ "keywords": [
+ "ZendFramework",
+ "filter",
+ "zf"
],
- "description": "Symfony Config Component",
- "homepage": "https://symfony.com",
- "time": "2018-09-08T13:24:10+00:00"
+ "time": "2018-04-11T16:20:04+00:00"
},
{
- "name": "symfony/dependency-injection",
- "version": "v4.1.6",
+ "name": "zendframework/zend-hydrator",
+ "version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/dependency-injection.git",
- "reference": "f6b9d893ad28aefd8942dc0469c8397e2216fe30"
+ "url": "https://github.com/zendframework/zend-hydrator.git",
+ "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f6b9d893ad28aefd8942dc0469c8397e2216fe30",
- "reference": "f6b9d893ad28aefd8942dc0469c8397e2216fe30",
+ "url": "https://api.github.com/repos/zendframework/zend-hydrator/zipball/22652e1661a5a10b3f564cf7824a2206cf5a4a65",
+ "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65",
"shasum": ""
},
"require": {
- "php": "^7.1.3",
- "psr/container": "^1.0"
- },
- "conflict": {
- "symfony/config": "<4.1.1",
- "symfony/finder": "<3.4",
- "symfony/proxy-manager-bridge": "<3.4",
- "symfony/yaml": "<3.4"
- },
- "provide": {
- "psr/container-implementation": "1.0"
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
},
"require-dev": {
- "symfony/config": "~4.1",
- "symfony/expression-language": "~3.4|~4.0",
- "symfony/yaml": "~3.4|~4.0"
+ "phpunit/phpunit": "~4.0",
+ "squizlabs/php_codesniffer": "^2.0@dev",
+ "zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
+ "zendframework/zend-filter": "^2.6",
+ "zendframework/zend-inputfilter": "^2.6",
+ "zendframework/zend-serializer": "^2.6.1",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
},
"suggest": {
- "symfony/config": "",
- "symfony/expression-language": "For using expressions in service container configuration",
- "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
- "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
- "symfony/yaml": ""
+ "zendframework/zend-eventmanager": "^2.6.2 || ^3.0, to support aggregate hydrator usage",
+ "zendframework/zend-filter": "^2.6, to support naming strategy hydrator usage",
+ "zendframework/zend-serializer": "^2.6.1, to use the SerializableStrategy",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3, to support hydrator plugin manager usage"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-release-1.0": "1.0-dev",
+ "dev-release-1.1": "1.1-dev",
+ "dev-master": "2.0-dev",
+ "dev-develop": "2.1-dev"
}
},
"autoload": {
"psr-4": {
- "Symfony\\Component\\DependencyInjection\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Zend\\Hydrator\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
+ "homepage": "https://github.com/zendframework/zend-hydrator",
+ "keywords": [
+ "hydrator",
+ "zf2"
],
- "description": "Symfony DependencyInjection Component",
- "homepage": "https://symfony.com",
- "time": "2018-10-02T12:40:59+00:00"
+ "time": "2016-02-18T22:38:26+00:00"
},
{
- "name": "symfony/filesystem",
- "version": "v4.1.6",
+ "name": "zendframework/zend-i18n",
+ "version": "2.9.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/filesystem.git",
- "reference": "596d12b40624055c300c8b619755b748ca5cf0b5"
+ "url": "https://github.com/zendframework/zend-i18n.git",
+ "reference": "6d69af5a04e1a4de7250043cb1322f077a0cdb7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/596d12b40624055c300c8b619755b748ca5cf0b5",
- "reference": "596d12b40624055c300c8b619755b748ca5cf0b5",
+ "url": "https://api.github.com/repos/zendframework/zend-i18n/zipball/6d69af5a04e1a4de7250043cb1322f077a0cdb7f",
+ "reference": "6d69af5a04e1a4de7250043cb1322f077a0cdb7f",
"shasum": ""
},
"require": {
- "php": "^7.1.3",
- "symfony/polyfill-ctype": "~1.8"
+ "php": "^5.6 || ^7.0",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
+ "zendframework/zend-cache": "^2.6.1",
+ "zendframework/zend-coding-standard": "~1.0.0",
+ "zendframework/zend-config": "^2.6",
+ "zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
+ "zendframework/zend-filter": "^2.6.1",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
+ "zendframework/zend-validator": "^2.6",
+ "zendframework/zend-view": "^2.6.3"
+ },
+ "suggest": {
+ "ext-intl": "Required for most features of Zend\\I18n; included in default builds of PHP",
+ "zendframework/zend-cache": "Zend\\Cache component",
+ "zendframework/zend-config": "Zend\\Config component",
+ "zendframework/zend-eventmanager": "You should install this package to use the events in the translator",
+ "zendframework/zend-filter": "You should install this package to use the provided filters",
+ "zendframework/zend-i18n-resources": "Translation resources",
+ "zendframework/zend-servicemanager": "Zend\\ServiceManager component",
+ "zendframework/zend-validator": "You should install this package to use the provided validators",
+ "zendframework/zend-view": "You should install this package to use the provided view helpers"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.1-dev"
+ "dev-master": "2.9.x-dev",
+ "dev-develop": "2.10.x-dev"
+ },
+ "zf": {
+ "component": "Zend\\I18n",
+ "config-provider": "Zend\\I18n\\ConfigProvider"
}
},
"autoload": {
"psr-4": {
- "Symfony\\Component\\Filesystem\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Zend\\I18n\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
+ "description": "Provide translations for your application, and filter and validate internationalized values",
+ "keywords": [
+ "ZendFramework",
+ "i18n",
+ "zf"
],
- "description": "Symfony Filesystem Component",
- "homepage": "https://symfony.com",
- "time": "2018-10-02T12:40:59+00:00"
+ "time": "2018-05-16T16:39:13+00:00"
},
{
- "name": "symfony/polyfill-ctype",
- "version": "v1.9.0",
+ "name": "zendframework/zend-json",
+ "version": "3.1.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
+ "url": "https://github.com/zendframework/zend-json.git",
+ "reference": "4dd940e8e6f32f1d36ea6b0677ea57c540c7c19c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
- "reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
+ "url": "https://api.github.com/repos/zendframework/zend-json/zipball/4dd940e8e6f32f1d36ea6b0677ea57c540c7c19c",
+ "reference": "4dd940e8e6f32f1d36ea6b0677ea57c540c7c19c",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^5.6 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7.23 || ^6.4.3",
+ "zendframework/zend-coding-standard": "~1.0.0",
+ "zendframework/zend-stdlib": "^2.7.7 || ^3.1"
},
"suggest": {
- "ext-ctype": "For best performance"
+ "zendframework/zend-json-server": "For implementing JSON-RPC servers",
+ "zendframework/zend-xml2json": "For converting XML documents to JSON"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.9-dev"
+ "dev-master": "3.1.x-dev",
+ "dev-develop": "3.2.x-dev"
}
},
"autoload": {
"psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
+ "Zend\\Json\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- },
- {
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- }
+ "BSD-3-Clause"
],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
+ "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP",
"keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
+ "ZendFramework",
+ "json",
+ "zf"
],
- "time": "2018-08-06T14:22:27+00:00"
+ "time": "2018-01-04T17:51:34+00:00"
},
{
- "name": "theseer/tokenizer",
- "version": "1.1.0",
+ "name": "zendframework/zend-serializer",
+ "version": "2.9.0",
"source": {
"type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b"
+ "url": "https://github.com/zendframework/zend-serializer.git",
+ "reference": "0172690db48d8935edaf625c4cba38b79719892c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b",
- "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b",
+ "url": "https://api.github.com/repos/zendframework/zend-serializer/zipball/0172690db48d8935edaf625c4cba38b79719892c",
+ "reference": "0172690db48d8935edaf625c4cba38b79719892c",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": "^7.0"
+ "php": "^5.6 || ^7.0",
+ "zendframework/zend-json": "^2.5 || ^3.0",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7.25 || ^6.4.4",
+ "zendframework/zend-coding-standard": "~1.0.0",
+ "zendframework/zend-math": "^2.6 || ^3.0",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
+ },
+ "suggest": {
+ "zendframework/zend-math": "(^2.6 || ^3.0) To support Python Pickle serialization",
+ "zendframework/zend-servicemanager": "(^2.7.5 || ^3.0.3) To support plugin manager support"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.9.x-dev",
+ "dev-develop": "2.10.x-dev"
+ },
+ "zf": {
+ "component": "Zend\\Serializer",
+ "config-provider": "Zend\\Serializer\\ConfigProvider"
+ }
+ },
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Zend\\Serializer\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- }
+ "description": "provides an adapter based interface to simply generate storable representation of PHP types by different facilities, and recover",
+ "keywords": [
+ "ZendFramework",
+ "serializer",
+ "zf"
],
- "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
- "time": "2017-04-07T12:08:54+00:00"
+ "time": "2018-05-14T18:45:18+00:00"
},
{
- "name": "webmozart/assert",
- "version": "1.3.0",
+ "name": "zendframework/zend-servicemanager",
+ "version": "2.7.11",
"source": {
"type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "0df1908962e7a3071564e857d86874dad1ef204a"
+ "url": "https://github.com/zendframework/zend-servicemanager.git",
+ "reference": "99ec9ed5d0f15aed9876433c74c2709eb933d4c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
- "reference": "0df1908962e7a3071564e857d86874dad1ef204a",
+ "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/99ec9ed5d0f15aed9876433c74c2709eb933d4c7",
+ "reference": "99ec9ed5d0f15aed9876433c74c2709eb933d4c7",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0"
+ "container-interop/container-interop": "~1.0",
+ "php": "^5.5 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.6",
- "sebastian/version": "^1.0.1"
+ "athletic/athletic": "dev-master",
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0",
+ "zendframework/zend-di": "~2.5",
+ "zendframework/zend-mvc": "~2.5"
+ },
+ "suggest": {
+ "ocramius/proxy-manager": "ProxyManager 0.5.* to handle lazy initialization of services",
+ "zendframework/zend-di": "Zend\\Di component"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "2.7-dev",
+ "dev-develop": "3.0-dev"
}
},
"autoload": {
"psr-4": {
- "Webmozart\\Assert\\": "src/"
+ "Zend\\ServiceManager\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
+ "BSD-3-Clause"
],
- "description": "Assertions to validate method input/output with nice error messages.",
+ "homepage": "https://github.com/zendframework/zend-servicemanager",
"keywords": [
- "assert",
- "check",
- "validate"
+ "servicemanager",
+ "zf2"
],
- "time": "2018-01-29T19:49:41+00:00"
+ "time": "2018-06-22T14:49:54+00:00"
},
{
- "name": "wimg/php-compatibility",
- "version": "8.2.0",
+ "name": "zendframework/zend-stdlib",
+ "version": "2.7.7",
"source": {
"type": "git",
- "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
- "reference": "eaf613c1a8265bcfd7b0ab690783f2aef519f78a"
+ "url": "https://github.com/zendframework/zend-stdlib.git",
+ "reference": "0e44eb46788f65e09e077eb7f44d2659143bcc1f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/eaf613c1a8265bcfd7b0ab690783f2aef519f78a",
- "reference": "eaf613c1a8265bcfd7b0ab690783f2aef519f78a",
+ "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/0e44eb46788f65e09e077eb7f44d2659143bcc1f",
+ "reference": "0e44eb46788f65e09e077eb7f44d2659143bcc1f",
"shasum": ""
},
"require": {
- "php": ">=5.3",
- "squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
- },
- "conflict": {
- "squizlabs/php_codesniffer": "2.6.2"
+ "php": "^5.5 || ^7.0",
+ "zendframework/zend-hydrator": "~1.1"
},
"require-dev": {
- "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
+ "athletic/athletic": "~0.1",
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0",
+ "zendframework/zend-config": "~2.5",
+ "zendframework/zend-eventmanager": "~2.5",
+ "zendframework/zend-filter": "~2.5",
+ "zendframework/zend-inputfilter": "~2.5",
+ "zendframework/zend-serializer": "~2.5",
+ "zendframework/zend-servicemanager": "~2.5"
},
"suggest": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
- "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
+ "zendframework/zend-eventmanager": "To support aggregate hydrator usage",
+ "zendframework/zend-filter": "To support naming strategy hydrator usage",
+ "zendframework/zend-serializer": "Zend\\Serializer component",
+ "zendframework/zend-servicemanager": "To support hydrator plugin manager usage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-release-2.7": "2.7-dev",
+ "dev-master": "3.0-dev",
+ "dev-develop": "3.1-dev"
+ }
},
- "type": "phpcodesniffer-standard",
"autoload": {
"psr-4": {
- "PHPCompatibility\\": "PHPCompatibility/"
+ "Zend\\Stdlib\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "LGPL-3.0-or-later"
- ],
- "authors": [
- {
- "name": "Wim Godden",
- "role": "lead"
- }
+ "BSD-3-Clause"
],
- "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP version compatibility.",
- "homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
+ "homepage": "https://github.com/zendframework/zend-stdlib",
"keywords": [
- "compatibility",
- "phpcs",
- "standards"
+ "stdlib",
+ "zf2"
],
- "time": "2018-07-17T13:42:26+00:00"
+ "time": "2016-04-12T21:17:31+00:00"
},
{
- "name": "wp-coding-standards/wpcs",
- "version": "1.1.0",
+ "name": "zetacomponents/base",
+ "version": "1.9.1",
"source": {
"type": "git",
- "url": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git",
- "reference": "46d42828ce7355d8b3776e3171f2bda892d179b4"
+ "url": "https://github.com/zetacomponents/Base.git",
+ "reference": "489e20235989ddc97fdd793af31ac803972454f1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/WordPress-Coding-Standards/WordPress-Coding-Standards/zipball/46d42828ce7355d8b3776e3171f2bda892d179b4",
- "reference": "46d42828ce7355d8b3776e3171f2bda892d179b4",
+ "url": "https://api.github.com/repos/zetacomponents/Base/zipball/489e20235989ddc97fdd793af31ac803972454f1",
+ "reference": "489e20235989ddc97fdd793af31ac803972454f1",
"shasum": ""
},
- "require": {
- "php": ">=5.3",
- "squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2"
- },
"require-dev": {
- "phpcompatibility/php-compatibility": "*"
+ "phpunit/phpunit": "~5.7",
+ "zetacomponents/unit-test": "*"
},
- "suggest": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically."
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src"
+ ]
},
- "type": "phpcodesniffer-standard",
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "Apache-2.0"
],
"authors": [
{
- "name": "Contributors",
- "homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors"
+ "name": "Sergey Alexeev"
+ },
+ {
+ "name": "Sebastian Bergmann"
+ },
+ {
+ "name": "Jan Borsodi"
+ },
+ {
+ "name": "Raymond Bosman"
+ },
+ {
+ "name": "Frederik Holljen"
+ },
+ {
+ "name": "Kore Nordmann"
+ },
+ {
+ "name": "Derick Rethans"
+ },
+ {
+ "name": "Vadym Savchuk"
+ },
+ {
+ "name": "Tobias Schlitt"
+ },
+ {
+ "name": "Alexandru Stanoi"
}
],
- "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
- "keywords": [
- "phpcs",
- "standards",
- "wordpress"
- ],
- "time": "2018-09-10T17:04:05+00:00"
+ "description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.",
+ "homepage": "https://github.com/zetacomponents",
+ "time": "2017-11-28T11:30:00+00:00"
},
{
- "name": "yard/phpcs",
- "version": "dev-master",
+ "name": "zetacomponents/document",
+ "version": "1.3.1",
"source": {
"type": "git",
- "url": "git@bitbucket.org:yardinternet/phpcs.git",
- "reference": "c830eadc80946f6a36929e9ab915ccf8ba3a4d62"
+ "url": "https://github.com/zetacomponents/Document.git",
+ "reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zetacomponents/Document/zipball/688abfde573cf3fe0730f82538fbd7aa9fc95bc8",
+ "reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8",
+ "shasum": ""
},
"require": {
- "composer-plugin-api": "^1.1",
- "wimg/php-compatibility": "*",
- "wp-coding-standards/wpcs": "*"
+ "zetacomponents/base": "*"
},
- "type": "composer-plugin",
- "extra": {
- "class": "Yard\\PHPCS\\PHPCSConfig"
+ "require-dev": {
+ "zetacomponents/unit-test": "dev-master"
},
+ "type": "library",
"autoload": {
- "psr-4": {
- "Yard\\PHPCS\\": "src/"
- }
- },
- "scripts": {
- "lint": [
- "phpcs ."
- ],
- "test": [
- "Yard\\PHPCS\\PHPCSConfig::run"
+ "classmap": [
+ "src"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "Apache-2.0"
],
"authors": [
{
- "name": "Edwin Siebel",
- "email": "edwin@yard.nl"
+ "name": "Sebastian Bergmann"
+ },
+ {
+ "name": "Kore Nordmann"
+ },
+ {
+ "name": "Derick Rethans"
+ },
+ {
+ "name": "Tobias Schlitt"
+ },
+ {
+ "name": "Alexandru Stanoi"
}
],
- "time": "2018-07-12T13:22:59+00:00"
+ "description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.",
+ "homepage": "https://github.com/zetacomponents",
+ "time": "2013-12-19T11:40:00+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
- "10up/wp_mock": 20,
- "yard/phpcs": 20,
- "phpmd/phpmd": 0
+ "10up/wp_mock": 20
},
"prefer-stable": false,
"prefer-lowest": false,
diff --git a/config/api.php b/config/api.php
index aa2702f..1f335cc 100644
--- a/config/api.php
+++ b/config/api.php
@@ -19,7 +19,7 @@
'links' => OWC\OpenPub\Base\RestAPI\ItemFields\LinksField::class,
'synonyms' => OWC\OpenPub\Base\RestAPI\ItemFields\SynonymsField::class,
'notes' => OWC\OpenPub\Base\RestAPI\ItemFields\NotesField::class,
- ]
+ ],
],
'search' => [
'fields' => [
@@ -30,7 +30,7 @@
'links' => OWC\OpenPub\Base\RestAPI\ItemFields\LinksField::class,
'synonyms' => OWC\OpenPub\Base\RestAPI\ItemFields\SynonymsField::class,
'notes' => OWC\OpenPub\Base\RestAPI\ItemFields\NotesField::class,
- ]
- ]
- ]
-];
\ No newline at end of file
+ ],
+ ],
+ ],
+];
diff --git a/docs/classes/OWC.OpenPub.Base.Admin.Settings.SettingsServiceProvider.html b/docs/classes/OWC.OpenPub.Base.Admin.Settings.SettingsServiceProvider.html
new file mode 100644
index 0000000..7e84f50
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Admin.Settings.SettingsServiceProvider.html
@@ -0,0 +1,969 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Admin\Settings
+
+
+
+
\OWC\OpenPub\Base\Admin\Settings SettingsServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PREFIX
+ PREFIX
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the service provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ registerSettingsPage()
+
+ registerSettingsPage( $rwmbSettingsPages ) : array
+
+
+
+ Parameters
+
+
+
+ $rwmbSettingsPages
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ registerSettings()
+
+ registerSettings( $rwmbMetaboxes ) : array
+ Register metaboxes for settings page
+
+
+ Parameters
+
+
+
+ $rwmbMetaboxes
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ processMetabox()
+
+ processMetabox(array $metabox )
+
+
+
+ Parameters
+
+
+ array
+ $metabox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ processFieldGroup()
+
+ processFieldGroup( $fieldGroup )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ addPrefix()
+
+ addPrefix( $field )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.ElasticPress.ElasticPress.html b/docs/classes/OWC.OpenPub.Base.ElasticPress.ElasticPress.html
new file mode 100644
index 0000000..7c5f774
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.ElasticPress.ElasticPress.html
@@ -0,0 +1,1506 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\ElasticPress
+
+
+
+
\OWC\OpenPub\Base\ElasticPress ElasticPress
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+
+
+
+
+
+
+
+
+ File
+ ElasticPress/ElasticPress.php
+ Package
+ Default
+ Class hierarchy
+
+ \OWC\OpenPub\Base\ElasticPress\ElasticPress
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Config $config , \OWC\OpenPub\Base\Models\Item $item )
+ ElasticPress constructor.
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ init()
+
+ init()
+ Initialize ElasticPress integration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setFilters()
+
+ setFilters()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setDecay()
+
+ setDecay(integer $decay , array $formatted_args , array $args ) : integer
+ Set decay of post.
+
+
+ Parameters
+
+
+ integer
+ $decay
+
+
+
+ array
+ $formatted_args
+
+
+
+ array
+ $args
+
+
+
+
+
+ Returns
+ integer
+
+
+
+
+
+
+
+
+
+
+ setOffset()
+
+ setOffset(string $decay , array $formatted_args , array $args ) : string
+ Set offset of the decay of post.
+
+
+ Parameters
+
+
+ string
+ $decay
+
+
+
+ array
+ $formatted_args
+
+
+
+ array
+ $args
+
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ setFormattedArgs()
+
+ setFormattedArgs(array $formattedArgs , array $args ) : array
+ Weight more recent content in searches.
+
+
+ Parameters
+
+
+ array
+ $formattedArgs
+
+
+
+ array
+ $args
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ setIndexables()
+
+ setIndexables( $postTypes )
+ Sets the filter to modify the posttypes which gets indexed in the ElasticSearch instance
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setIndexPostsArgs()
+
+ setIndexPostsArgs( $args )
+ Sets additional meta_query information to further determine which posts gets indexed in the ElasticSearch instance
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setStatuses()
+
+ setStatuses( $statuses )
+ Filters the post statuses for indexation by elasticPress
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setLanguage()
+
+ setLanguage( $language , $analyzer ) : string
+ Set the language for the ES instance.
+
+
+ Parameters
+
+
+
+ $language
+
+
+
+
+ $analyzer
+
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ setPostSyncArgs()
+
+ setPostSyncArgs( $item , $postID )
+ Set the args of the post which is synced to the instance.
+
+
+ Parameters
+
+
+
+ $item
+
+
+
+
+ $postID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setSettings()
+
+ setSettings()
+ Define all the necessary settings.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setIndexNameByEnvironment()
+
+ setIndexNameByEnvironment( $indexName , $siteID ) : string
+ Sets the uniformed indexName for ElasticSearch, based on prefix, environment variable and site ID.
+
+
+ Parameters
+
+
+
+ $indexName
+
+
+
+
+ $siteID
+
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ getSettings()
+
+ getSettings() : array
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ setSearchArgs()
+
+ setSearchArgs( $args , $scope , $query_args )
+
+
+
+ Parameters
+
+
+
+ $args
+
+
+
+
+ $scope
+
+
+
+
+ $query_args
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setSearchFields()
+
+ setSearchFields( $searchFields , $args ) : array
+
+
+
+ Parameters
+
+
+
+ $searchFields
+
+
+
+
+ $args
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ setRequestHost()
+
+ setRequestHost( $host , $failures , $path , $args ) : mixed
+
+
+
+ Parameters
+
+
+
+ $host
+
+
+
+
+ $failures
+
+
+
+
+ $path
+
+
+
+
+ $args
+
+
+
+
+
+ Returns
+ mixed
+
+
+
+
+
+
+
+
+
+
+ setRequestUrl()
+
+ setRequestUrl( $url , $failures , $host , $path , $args ) : mixed
+
+
+
+ Parameters
+
+
+
+ $url
+
+
+
+
+ $failures
+
+
+
+
+ $host
+
+
+
+
+ $path
+
+
+
+
+ $args
+
+
+
+
+
+ Returns
+ mixed
+
+
+
+
+
+
+
+
+
+
+ transform()
+
+ transform( $item , $postID ) : array
+ Transforms the postArgs to a filterable object.
+
+
+ Parameters
+
+
+
+ $item
+
+
+
+
+ $postID
+
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getEnvironmentVariable()
+
+ getEnvironmentVariable() : array|false|string
+
+
+
+
+
+ Returns
+ array|false|string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.ElasticPress.ElasticPressServiceProvider.html b/docs/classes/OWC.OpenPub.Base.ElasticPress.ElasticPressServiceProvider.html
new file mode 100644
index 0000000..452e594
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.ElasticPress.ElasticPressServiceProvider.html
@@ -0,0 +1,792 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\ElasticPress
+
+
+
+
\OWC\OpenPub\Base\ElasticPress ElasticPressServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the service provider.
+
+
+
+ Throws
+
+ \Exception
+
+
+
+
+
+
+
+
+
+
+
+
+
+ boot()
+
+ boot()
+ Register the service provider
+
+
+
+ Throws
+
+ \Exception
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Exceptions.PropertyNotExistsException.html b/docs/classes/OWC.OpenPub.Base.Exceptions.PropertyNotExistsException.html
new file mode 100644
index 0000000..b3976ec
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Exceptions.PropertyNotExistsException.html
@@ -0,0 +1,652 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Exceptions
+
+
+
+
\OWC\OpenPub\Base\Exceptions PropertyNotExistsException
+
+
+
+
+
+ Summary
+
+
+
+ No public methods found
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+ No protected properties found
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Foundation.Config.html b/docs/classes/OWC.OpenPub.Base.Foundation.Config.html
new file mode 100644
index 0000000..ae49671
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Foundation.Config.html
@@ -0,0 +1,1044 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Foundation
+
+
+
+
\OWC\OpenPub\Base\Foundation Config
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Foundation/Config.php
+ Package
+ Default
+ Class hierarchy
+
+ \OWC\OpenPub\Base\Foundation\Config
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $path
+ $path : string
+ Directory where config files are located.
+
+
+ Type
+ string
+
+
+
+
+
+
+
+
+
+ $protectedNodes
+ $protectedNodes : array
+ Array with names of protected nodes in the config-items.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $items
+ $items : array
+ Array with all the config values.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(string $path , array $items = array() )
+ Config repository constructor.
+ Boot the configuration files and get all the files from the
+config directory and add them to the config array.
+
+ Parameters
+
+
+ string
+ $path
+ Path to the configuration files.
+
+
+ array
+ $items
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ boot()
+
+ boot()
+ Boot up the configuration repository.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ get()
+
+ get( $setting ) : array|mixed
+ Retrieve a specific config value from the configuration repository.
+
+
+ Parameters
+
+
+
+ Returns
+ array|mixed
+
+
+
+
+
+
+
+
+
+
+ set()
+
+ set(array|string $key , mixed $value = null ) : void
+ Set a given configuration value.
+
+
+ Parameters
+
+
+ array|string
+ $key
+
+
+
+ mixed
+ $value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all()
+
+ all() : array
+ Return all config values.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getPath()
+
+ getPath() : string
+ Get the path where the files will be fetched from.
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ setPath()
+
+ setPath( $path )
+ Sets the path where the config files are fetched from.
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setProtectedNodes()
+
+ setProtectedNodes(array $nodes = array() )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ scanDirectory()
+
+ scanDirectory( $path )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Foundation.DependencyChecker.html b/docs/classes/OWC.OpenPub.Base.Foundation.DependencyChecker.html
new file mode 100644
index 0000000..4fb902d
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Foundation.DependencyChecker.html
@@ -0,0 +1,951 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Foundation
+
+
+
+
\OWC\OpenPub\Base\Foundation DependencyChecker
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+ No protected properties found
+
+
+
+
+
+
+
+
+
+
+ File
+ Foundation/DependencyChecker.php
+ Package
+ Default
+ Class hierarchy
+
+ \OWC\OpenPub\Base\Foundation\DependencyChecker
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $dependencies
+ $dependencies : array
+ Plugins that need to be checked for.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $failed
+ $failed : array
+ Build up array of failed plugins, either because
+they have the wrong version or are inactive.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(array $dependencies )
+ Determine which plugins need to be present.
+
+
+ Parameters
+
+
+ array
+ $dependencies
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ failed()
+
+ failed() : boolean
+ Determines if the dependencies are not met.
+
+
+
+
+ Returns
+ boolean
+
+
+
+
+
+
+
+
+
+
+ notify()
+
+ notify()
+ Notifies the administrator which plugins need to be enabled,
+or which plugins have the wrong version.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ markFailed()
+
+ markFailed(array $dependency , string $defaultMessage )
+ Marks a dependency as failed.
+
+
+ Parameters
+
+
+ array
+ $dependency
+
+
+
+ string
+ $defaultMessage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ checkClass()
+
+ checkClass(array $dependency )
+
+
+
+ Parameters
+
+
+ array
+ $dependency
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ checkPlugin()
+
+ checkPlugin(array $dependency )
+ Check if a plugin is enabled and has the correct version.
+
+
+ Parameters
+
+
+ array
+ $dependency
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ checkVersion()
+
+ checkVersion(array $dependency ) : boolean
+ Checks the installed version of the plugin.
+
+
+ Parameters
+
+
+ array
+ $dependency
+
+
+
+
+
+ Returns
+ boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Foundation.Hooks.html b/docs/classes/OWC.OpenPub.Base.Foundation.Hooks.html
new file mode 100644
index 0000000..b85a168
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Foundation.Hooks.html
@@ -0,0 +1,925 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Foundation
+
+
+
+
\OWC\OpenPub\Base\Foundation Hooks
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+ No protected properties found
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Foundation/Hooks.php
+ Package
+ Default
+ Class hierarchy
+
+ \OWC\OpenPub\Base\Foundation\Hooks
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pluginActivation()
+
+ pluginActivation()
+ This method is called when the plugin is being activated.
+
+
+
+
+
+
+
+
+
+ static
+
+
+ Tags
+
+
+
+
+
+
+
+
+ pluginActivated()
+
+ pluginActivated( $plugin , $networkActivation )
+ This method is called immediately after any plugin is activated, and may be used to detect the activation of
+plugins. If a plugin is silently activated (such as during an update), this hook does not fire.
+
+
+ Parameters
+
+
+
+ $plugin
+
+
+
+
+ $networkActivation
+
+
+
+
+
+
+
+
+
+
+ static
+
+
+ Tags
+
+
+
+
+
+
+
+
+ pluginDeactivated()
+
+ pluginDeactivated( $plugin , $networkActivation )
+ This method is run immediately after any plugin is deactivated, and may be used to detect the deactivation of
+other plugins.
+
+
+ Parameters
+
+
+
+ $plugin
+
+
+
+
+ $networkActivation
+
+
+
+
+
+
+
+
+
+
+ static
+
+
+ Tags
+
+
+
+
+
+
+
+
+ pluginDeactivation()
+
+ pluginDeactivation()
+ This method registers a plugin function to be run when the plugin is deactivated.
+
+
+
+
+
+
+
+
+
+ static
+
+
+ Tags
+
+
+
+
+
+
+
+
+ uninstallPlugin()
+
+ uninstallPlugin()
+ This method is run when the plugin is activated.
+ This method run is when the user clicks on the uninstall link that calls for the plugin to uninstall itself.
+The link won’t be active unless the plugin hooks into the action.
+
+
+
+
+
+
+
+
+ static
+
+
+ Tags
+
+
+
+
+
+
+
+
+ activateAppOnNewBlog()
+
+ activateAppOnNewBlog( $blogId , $userId , $domain , $path , $siteId , $meta )
+
+
+
+ Parameters
+
+
+
+ $blogId
+
+
+
+
+ $userId
+
+
+
+
+ $domain
+
+
+
+
+ $path
+
+
+
+
+ $siteId
+
+
+
+
+ $meta
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ activateCurrentPlugin()
+
+ activateCurrentPlugin( $plugin , boolean $buffer = false )
+ Helper to activate a plugin on another site without causing a fatal error by
+including the plugin file a second time. Based on activate_plugin() in
+wp-admin/includes/plugin.php
+ $buffer option is used for All in One SEO Pack, which sends output otherwise
+
+ Parameters
+
+
+
+ $plugin
+
+
+
+ boolean
+ $buffer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Foundation.Loader.html b/docs/classes/OWC.OpenPub.Base.Foundation.Loader.html
new file mode 100644
index 0000000..21ad30d
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Foundation.Loader.html
@@ -0,0 +1,956 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Foundation
+
+
+
+
\OWC\OpenPub\Base\Foundation Loader
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Foundation/Loader.php
+ Package
+ Default
+ Class hierarchy
+
+ \OWC\OpenPub\Base\Foundation\Loader
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $actions
+ $actions : array
+ The array of actions registered with WordPress.
+
+
+ Type
+ array
+ — The actions registered with WordPress to fire when the plugin loads.
+
+
+
+
+
+
+
+
+ $filters
+ $filters : array
+ The array of filters registered with WordPress.
+
+
+ Type
+ array
+ — The filters registered with WordPress to fire when the plugin loads.
+
+
+
+
+
+
+
+
+
+
+
+
+ addAction()
+
+ addAction(string $hook , object $component , string $callback , integer $priority = 10 , integer $acceptedArgs = 1 )
+ Add a new action to the collection to be registered with WordPress.
+
+
+ Parameters
+
+
+ string
+ $hook
+ The name of the WordPress action that is being registered.
+
+
+ object
+ $component
+ A reference to the instance of the object on which the action is defined.
+
+
+ string
+ $callback
+ The name of the function definition on the $component.
+
+
+ integer
+ $priority
+ Optional. he priority at which the function should be fired. Default is 10.
+
+
+ integer
+ $acceptedArgs
+ Optional. The number of arguments that should be passed to the $callback.
+Default is 1.
+
+
+
+
+
+
+
+
+
+
+
+ Tags
+
+
+
+ since
+
+
+ 2.0.0
+
+
+
+
+
+
+
+
+
+
+ addFilter()
+
+ addFilter(string $hook , object $component , string $callback , integer $priority = 10 , integer $acceptedArgs = 1 )
+ Add a new filter to the collection to be registered with WordPress.
+
+
+ Parameters
+
+
+ string
+ $hook
+ The name of the WordPress filter that is being registered.
+
+
+ object
+ $component
+ A reference to the instance of the object on which the filter is defined.
+
+
+ string
+ $callback
+ The name of the function definition on the $component.
+
+
+ integer
+ $priority
+ Optional. he priority at which the function should be fired. Default is 10.
+
+
+ integer
+ $acceptedArgs
+ Optional. The number of arguments that should be passed to the $callback.
+Default is 1
+
+
+
+
+
+
+
+
+
+
+
+ Tags
+
+
+
+ since
+
+
+ 2.0.0
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the filters and actions with WordPress.
+
+
+
+
+
+
+
+
+
+
+
+ Tags
+
+
+
+ since
+
+
+ 2.0.0
+
+
+
+
+
+
+
+
+
+
+ add()
+
+ add(array $hooks , string $hook , object $component , string $callback , integer $priority , integer $acceptedArgs ) : array
+ A utility function that is used to register the actions and hooks into a single
+collection.
+
+
+ Parameters
+
+
+ array
+ $hooks
+ The collection of hooks that is being registered (that is, actions or filters).
+
+
+ string
+ $hook
+ The name of the WordPress filter that is being registered.
+
+
+ object
+ $component
+ A reference to the instance of the object on which the filter is defined.
+
+
+ string
+ $callback
+ The name of the function definition on the $component.
+
+
+ integer
+ $priority
+ The priority at which the function should be fired.
+
+
+ integer
+ $acceptedArgs
+ The number of arguments that should be passed to the $callback.
+
+
+
+
+ Returns
+ array
+ — The collection of actions and filters registered with WordPress.
+
+
+
+
+
+
+
+ Tags
+
+
+
+ since
+
+
+ 2.0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Foundation.Plugin.html b/docs/classes/OWC.OpenPub.Base.Foundation.Plugin.html
new file mode 100644
index 0000000..5d94893
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Foundation.Plugin.html
@@ -0,0 +1,1075 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Foundation
+
+
+
+
\OWC\OpenPub\Base\Foundation Plugin
+
+
+
+
+
+ Summary
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Foundation/Plugin.php
+ Package
+ Default
+ Class hierarchy
+
+ \OWC\OpenPub\Base\Foundation\Plugin
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+ NAME
+ NAME
+ Name of the plugin.
+
+
+
+
+
+
+
+
+
+
+ VERSION
+ VERSION
+ Version of the plugin.
+ Used for setting versions of enqueue scripts and styles.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $config
+ $config : \OWC\OpenPub\Base\Config
+ Instance of the configuration repository.
+
+
+ Type
+ \OWC\OpenPub\Base\Config
+
+
+
+
+
+
+
+
+
+
+
+ $rootPath
+ $rootPath : string
+ Path to the root of the plugin.
+
+
+ Type
+ string
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\string $rootPath )
+
+
+
+ Parameters
+
+
+ \OWC\OpenPub\Base\Foundation\string
+ $rootPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ boot()
+
+ boot() : boolean
+ Boot the plugin.
+
+
+
+ Throws
+
+ \Exception
+
+
+
+ Returns
+ boolean
+
+
+
+
+
+
+
+ Tags
+
+
+
+ hook
+
+
+ plugins_loaded
+
+
+
+
+
+
+
+
+
+
+ filterPlugin()
+
+ filterPlugin()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ callServiceProviders()
+
+ callServiceProviders(string $method , string $key = '' )
+ Call method on service providers.
+
+
+ Parameters
+
+
+ string
+ $method
+
+
+
+ string
+ $key
+
+
+
+
+ Throws
+
+ \Exception
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getName()
+
+ getName() : string
+ Get the name of the plugin.
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ getVersion()
+
+ getVersion() : string
+ Get the version of the plugin.
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ getRootPath()
+
+ getRootPath() : string
+ Return root path of plugin.
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ addStartUpHooks()
+
+ addStartUpHooks()
+ Startup hooks to initialize the plugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ addTearDownHooks()
+
+ addTearDownHooks()
+ Teardown hooks to cleanup or uninstall the plugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Foundation.ServiceProvider.html b/docs/classes/OWC.OpenPub.Base.Foundation.ServiceProvider.html
new file mode 100644
index 0000000..afdad33
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Foundation.ServiceProvider.html
@@ -0,0 +1,751 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Foundation
+
+
+
+
\OWC\OpenPub\Base\Foundation ServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+ abstract
+
+
+
+ File
+ Foundation/ServiceProvider.php
+ Package
+ Default
+ Class hierarchy
+
+ \OWC\OpenPub\Base\Foundation\ServiceProvider
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the service provider.
+
+
+
+
+
+
+
+
+
+ abstract
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Metabox.MetaboxBaseServiceProvider.html b/docs/classes/OWC.OpenPub.Base.Metabox.MetaboxBaseServiceProvider.html
new file mode 100644
index 0000000..fb62d76
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Metabox.MetaboxBaseServiceProvider.html
@@ -0,0 +1,891 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Metabox
+
+
+
+
\OWC\OpenPub\Base\Metabox MetaboxBaseServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PREFIX
+ PREFIX
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the service provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ processMetabox()
+
+ processMetabox(array $metabox )
+
+
+
+ Parameters
+
+
+ array
+ $metabox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ processFieldGroup()
+
+ processFieldGroup( $fieldGroup )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ addPrefix()
+
+ addPrefix( $field )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Metabox.MetaboxServiceProvider.html b/docs/classes/OWC.OpenPub.Base.Metabox.MetaboxServiceProvider.html
new file mode 100644
index 0000000..795b3d1
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Metabox.MetaboxServiceProvider.html
@@ -0,0 +1,934 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Metabox
+
+
+
+
\OWC\OpenPub\Base\Metabox MetaboxServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Metabox/MetaboxServiceProvider.php
+ Package
+ Default
+ Class hierarchy
+
+
+
+
+
+ \OWC\OpenPub\Base\Metabox\MetaboxServiceProvider
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+ PREFIX
+ PREFIX
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ registerMetaboxes()
+
+ registerMetaboxes( $rwmbMetaboxes ) : array
+ Register metaboxes.
+
+
+ Parameters
+
+
+
+ $rwmbMetaboxes
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ processMetabox()
+
+ processMetabox(array $metabox )
+
+
+
+ Parameters
+
+
+ array
+ $metabox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ processFieldGroup()
+
+ processFieldGroup( $fieldGroup )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ addPrefix()
+
+ addPrefix( $field )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Models.Item.html b/docs/classes/OWC.OpenPub.Base.Models.Item.html
new file mode 100644
index 0000000..8f9ec29
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Models.Item.html
@@ -0,0 +1,1301 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Models
+
+
+
+
\OWC\OpenPub\Base\Models Item
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Models/Item.php
+ Package
+ Default
+ Class hierarchy
+
+
+
+ \OWC\OpenPub\Base\Models\Item
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $posttype
+ $posttype :
+
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+ $query
+ $query : null|\WP_Query
+ Instance of the WP_Query object.
+
+
+ Type
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+ $queryArgs
+ $queryArgs : array
+ Arguments for the WP_Query.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $hidden
+ $hidden : array
+ Fields that need to be hidden.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $fields
+ $fields : array
+ Dynamically added fields.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $globalFields
+ $globalFields : array<mixed,\OWC\OpenPub\Base\Support\CreatesFields>
+ Additional fields that needs to be added to an item.
+
+
+ Type
+ array<mixed,\OWC\OpenPub\Base\Support\CreatesFields >
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct()
+ Construct a new Model class.
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all()
+
+ all() : array
+ Get all the items from the database.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ find()
+
+ find(integer $id ) : array|null
+ Find a particular openpub item by ID.
+
+
+ Parameters
+
+
+
+ Returns
+ array|null
+
+
+
+
+
+
+
+
+
+
+ getQuery()
+
+ getQuery() : null|\WP_Query
+ Get the WP_Query object.
+
+
+
+
+ Returns
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+
+ query()
+
+ query(array $args ) : $this
+ Add additional query arguments.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ getQueryArgs()
+
+ getQueryArgs() : array
+ Returns the query args.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ hide()
+
+ hide(array $keys ) : $this
+ Hide a particular key from the request.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addField()
+
+ addField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator ) : $this
+ Dynamically add additional fields to the model.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addGlobalField()
+
+ addGlobalField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator , \Closure|null $conditional = null ) : void
+ Adds a new field to the
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getGlobalFields()
+
+ getGlobalFields() : array
+ Get all defined global fields of the Model.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ transform()
+
+ transform(\WP_Post $post ) : array
+ Transform a single WP_Post item.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ assignFields()
+
+ assignFields(array $data , \WP_Post $post ) : array
+ Assign fields to the data array.
+
+
+ Parameters
+
+
+ array
+ $data
+
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ addExpirationParameters()
+
+ addExpirationParameters() : array
+ Add parameters to meta_query to remove items with expired date.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Models.Location.html b/docs/classes/OWC.OpenPub.Base.Models.Location.html
new file mode 100644
index 0000000..87ae1f3
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Models.Location.html
@@ -0,0 +1,1274 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Models
+
+
+
+
\OWC\OpenPub\Base\Models Location
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Models/Location.php
+ Package
+ Default
+ Class hierarchy
+
+
+
+ \OWC\OpenPub\Base\Models\Location
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $posttype
+ $posttype :
+
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+ $query
+ $query : null|\WP_Query
+ Instance of the WP_Query object.
+
+
+ Type
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+ $queryArgs
+ $queryArgs : array
+ Arguments for the WP_Query.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $hidden
+ $hidden : array
+ Fields that need to be hidden.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $fields
+ $fields : array
+ Dynamically added fields.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $globalFields
+ $globalFields : array<mixed,\OWC\OpenPub\Base\Support\CreatesFields>
+ Additional fields that needs to be added to an item.
+
+
+ Type
+ array<mixed,\OWC\OpenPub\Base\Support\CreatesFields >
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct()
+ Construct a new Model class.
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all()
+
+ all() : array
+ Get all the items from the database.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ find()
+
+ find(integer $id ) : array|null
+ Find a particular openpub item by ID.
+
+
+ Parameters
+
+
+
+ Returns
+ array|null
+
+
+
+
+
+
+
+
+
+
+ getQuery()
+
+ getQuery() : null|\WP_Query
+ Get the WP_Query object.
+
+
+
+
+ Returns
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+
+ query()
+
+ query(array $args ) : $this
+ Add additional query arguments.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ getQueryArgs()
+
+ getQueryArgs() : array
+ Returns the query args.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ hide()
+
+ hide(array $keys ) : $this
+ Hide a particular key from the request.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addField()
+
+ addField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator ) : $this
+ Dynamically add additional fields to the model.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addGlobalField()
+
+ addGlobalField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator , \Closure|null $conditional = null ) : void
+ Adds a new field to the
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getGlobalFields()
+
+ getGlobalFields() : array
+ Get all defined global fields of the Model.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ transform()
+
+ transform(\WP_Post $post ) : array
+ Transform a single WP_Post item.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ assignFields()
+
+ assignFields(array $data , \WP_Post $post ) : array
+ Assign fields to the data array.
+
+
+ Parameters
+
+
+ array
+ $data
+
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Models.Model.html b/docs/classes/OWC.OpenPub.Base.Models.Model.html
new file mode 100644
index 0000000..9d8f020
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Models.Model.html
@@ -0,0 +1,1241 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Models
+
+
+
+
\OWC\OpenPub\Base\Models Model
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+ abstract
+
+
+
+ File
+ Models/Model.php
+ Package
+ Default
+ Class hierarchy
+
+ \OWC\OpenPub\Base\Models\Model
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $posttype
+ $posttype :
+
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+ $query
+ $query : null|\WP_Query
+ Instance of the WP_Query object.
+
+
+ Type
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+ $queryArgs
+ $queryArgs : array
+ Arguments for the WP_Query.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $hidden
+ $hidden : array
+ Fields that need to be hidden.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $fields
+ $fields : array
+ Dynamically added fields.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $globalFields
+ $globalFields : array<mixed,\OWC\OpenPub\Base\Support\CreatesFields>
+ Additional fields that needs to be added to an item.
+
+
+ Type
+ array<mixed,\OWC\OpenPub\Base\Support\CreatesFields >
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct()
+ Construct a new Model class.
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all()
+
+ all() : array
+ Get all the items from the database.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ find()
+
+ find(integer $id ) : array|null
+ Find a particular openpub item by ID.
+
+
+ Parameters
+
+
+
+ Returns
+ array|null
+
+
+
+
+
+
+
+
+
+
+ getQuery()
+
+ getQuery() : null|\WP_Query
+ Get the WP_Query object.
+
+
+
+
+ Returns
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+
+ query()
+
+ query(array $args ) : $this
+ Add additional query arguments.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ getQueryArgs()
+
+ getQueryArgs() : array
+ Returns the query args.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ hide()
+
+ hide(array $keys ) : $this
+ Hide a particular key from the request.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addField()
+
+ addField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator ) : $this
+ Dynamically add additional fields to the model.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addGlobalField()
+
+ addGlobalField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator , \Closure|null $conditional = null ) : void
+ Adds a new field to the
+
+
+ Parameters
+
+
+
+
+
+
+
+
+ static
+
+
+ Tags
+
+
+
+
+
+
+
+
+ getGlobalFields()
+
+ getGlobalFields() : array
+ Get all defined global fields of the Model.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+ static
+
+
+ Tags
+
+
+
+
+
+
+
+
+ transform()
+
+ transform(\WP_Post $post ) : array
+ Transform a single WP_Post item.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ assignFields()
+
+ assignFields(array $data , \WP_Post $post ) : array
+ Assign fields to the data array.
+
+
+ Parameters
+
+
+ array
+ $data
+
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Models.Search.html b/docs/classes/OWC.OpenPub.Base.Models.Search.html
new file mode 100644
index 0000000..45481e6
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Models.Search.html
@@ -0,0 +1,1447 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Models
+
+
+
+
\OWC\OpenPub\Base\Models Search
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Models/Search.php
+ Package
+ Default
+ Class hierarchy
+
+
+
+
+
+ \OWC\OpenPub\Base\Models\Search
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $posttype
+ $posttype :
+
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+ $globalFields
+ $globalFields : array<mixed,\OWC\OpenPub\Base\Support\CreatesFields>
+ Additional fields that needs to be added to an item.
+
+
+ Type
+ array<mixed,\OWC\OpenPub\Base\Support\CreatesFields >
+
+
+
+
+
+
+
+
+
+ $query
+ $query : null|\WP_Query
+ Instance of the WP_Query object.
+
+
+ Type
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+ $queryArgs
+ $queryArgs : array
+ Arguments for the WP_Query.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $hidden
+ $hidden : array
+ Fields that need to be hidden.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $fields
+ $fields : array
+ Dynamically added fields.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $request
+ $request : \WP_REST_Request
+
+
+
+ Type
+ \WP_REST_Request
+
+
+
+
+
+
+
+
+
+ $whitelist
+ $whitelist : array
+
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+ query()
+
+ query(array $args ) : $this
+ Add additional query arguments.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\WP_REST_Request $request )
+ Search constructor.
+
+
+ Parameters
+
+
+ \WP_REST_Request
+ $request
+
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all()
+
+ all() : array
+ Get all the items from the database.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ find()
+
+ find(integer $id ) : array|null
+ Find a particular openpub item by ID.
+
+
+ Parameters
+
+
+
+ Returns
+ array|null
+
+
+
+
+
+
+
+
+
+
+ getQuery()
+
+ getQuery() : null|\WP_Query
+ Get the WP_Query object.
+
+
+
+
+ Returns
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+
+ getQueryArgs()
+
+ getQueryArgs() : array
+ Returns the query args.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ hide()
+
+ hide(array $keys ) : $this
+ Hide a particular key from the request.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addField()
+
+ addField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator ) : $this
+ Dynamically add additional fields to the model.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addGlobalField()
+
+ addGlobalField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator , \Closure|null $conditional = null ) : void
+ Adds a new field to the
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getGlobalFields()
+
+ getGlobalFields() : array
+ Get all defined global fields of the Model.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ transform()
+
+ transform(\WP_Post $post ) : array
+ Transform a single WP_Post item.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ addExpirationParameters()
+
+ addExpirationParameters() : array
+ Add parameters to meta_query to remove items with expired date.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ assignFields()
+
+ assignFields(array $data , \WP_Post $post ) : array
+ Assign fields to the data array.
+
+
+ Parameters
+
+
+ array
+ $data
+
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ sanitizeSearch()
+
+ sanitizeSearch() : string
+
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ perPage()
+
+ perPage() : integer
+
+
+
+
+
+ Returns
+ integer
+
+
+
+
+
+
+
+
+
+
+ addSearchParameters()
+
+ addSearchParameters() : array
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Models.Subtheme.html b/docs/classes/OWC.OpenPub.Base.Models.Subtheme.html
new file mode 100644
index 0000000..87f46f4
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Models.Subtheme.html
@@ -0,0 +1,1274 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Models
+
+
+
+
\OWC\OpenPub\Base\Models Subtheme
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Models/Subtheme.php
+ Package
+ Default
+ Class hierarchy
+
+
+
+ \OWC\OpenPub\Base\Models\Subtheme
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $posttype
+ $posttype :
+
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+ $query
+ $query : null|\WP_Query
+ Instance of the WP_Query object.
+
+
+ Type
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+ $queryArgs
+ $queryArgs : array
+ Arguments for the WP_Query.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $hidden
+ $hidden : array
+ Fields that need to be hidden.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $fields
+ $fields : array
+ Dynamically added fields.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $globalFields
+ $globalFields : array<mixed,\OWC\OpenPub\Base\Support\CreatesFields>
+ Additional fields that needs to be added to an item.
+
+
+ Type
+ array<mixed,\OWC\OpenPub\Base\Support\CreatesFields >
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct()
+ Construct a new Model class.
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all()
+
+ all() : array
+ Get all the items from the database.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ find()
+
+ find(integer $id ) : array|null
+ Find a particular openpub item by ID.
+
+
+ Parameters
+
+
+
+ Returns
+ array|null
+
+
+
+
+
+
+
+
+
+
+ getQuery()
+
+ getQuery() : null|\WP_Query
+ Get the WP_Query object.
+
+
+
+
+ Returns
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+
+ query()
+
+ query(array $args ) : $this
+ Add additional query arguments.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ getQueryArgs()
+
+ getQueryArgs() : array
+ Returns the query args.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ hide()
+
+ hide(array $keys ) : $this
+ Hide a particular key from the request.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addField()
+
+ addField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator ) : $this
+ Dynamically add additional fields to the model.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addGlobalField()
+
+ addGlobalField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator , \Closure|null $conditional = null ) : void
+ Adds a new field to the
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getGlobalFields()
+
+ getGlobalFields() : array
+ Get all defined global fields of the Model.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ transform()
+
+ transform(\WP_Post $post ) : array
+ Transform a single WP_Post item.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ assignFields()
+
+ assignFields(array $data , \WP_Post $post ) : array
+ Assign fields to the data array.
+
+
+ Parameters
+
+
+ array
+ $data
+
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Models.Theme.html b/docs/classes/OWC.OpenPub.Base.Models.Theme.html
new file mode 100644
index 0000000..0a1b6ad
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Models.Theme.html
@@ -0,0 +1,1274 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Models
+
+
+
+
\OWC\OpenPub\Base\Models Theme
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ Models/Theme.php
+ Package
+ Default
+ Class hierarchy
+
+
+
+ \OWC\OpenPub\Base\Models\Theme
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $posttype
+ $posttype :
+
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+ $query
+ $query : null|\WP_Query
+ Instance of the WP_Query object.
+
+
+ Type
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+ $queryArgs
+ $queryArgs : array
+ Arguments for the WP_Query.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $hidden
+ $hidden : array
+ Fields that need to be hidden.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $fields
+ $fields : array
+ Dynamically added fields.
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+ $globalFields
+ $globalFields : array<mixed,\OWC\OpenPub\Base\Support\CreatesFields>
+ Additional fields that needs to be added to an item.
+
+
+ Type
+ array<mixed,\OWC\OpenPub\Base\Support\CreatesFields >
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct()
+ Construct a new Model class.
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all()
+
+ all() : array
+ Get all the items from the database.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ find()
+
+ find(integer $id ) : array|null
+ Find a particular openpub item by ID.
+
+
+ Parameters
+
+
+
+ Returns
+ array|null
+
+
+
+
+
+
+
+
+
+
+ getQuery()
+
+ getQuery() : null|\WP_Query
+ Get the WP_Query object.
+
+
+
+
+ Returns
+ null|\WP_Query
+
+
+
+
+
+
+
+
+
+
+ query()
+
+ query(array $args ) : $this
+ Add additional query arguments.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ getQueryArgs()
+
+ getQueryArgs() : array
+ Returns the query args.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ hide()
+
+ hide(array $keys ) : $this
+ Hide a particular key from the request.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addField()
+
+ addField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator ) : $this
+ Dynamically add additional fields to the model.
+
+
+ Parameters
+
+
+
+ Returns
+ $this
+
+
+
+
+
+
+
+
+
+
+ addGlobalField()
+
+ addGlobalField(string $key , \OWC\OpenPub\Base\Support\CreatesFields $creator , \Closure|null $conditional = null ) : void
+ Adds a new field to the
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getGlobalFields()
+
+ getGlobalFields() : array
+ Get all defined global fields of the Model.
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ transform()
+
+ transform(\WP_Post $post ) : array
+ Transform a single WP_Post item.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ assignFields()
+
+ assignFields(array $data , \WP_Post $post ) : array
+ Assign fields to the data array.
+
+
+ Parameters
+
+
+ array
+ $data
+
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.PostType.PostTypeServiceProvider.html b/docs/classes/OWC.OpenPub.Base.PostType.PostTypeServiceProvider.html
new file mode 100644
index 0000000..691f5a0
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.PostType.PostTypeServiceProvider.html
@@ -0,0 +1,807 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\PostType
+
+
+
+
\OWC\OpenPub\Base\PostType PostTypeServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $configPostTypes
+ $configPostTypes : array
+ The array of posttype definitions from the config
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the service provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ registerPostTypes()
+
+ registerPostTypes()
+ register custom posttypes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.PostsToPosts.PostsToPostsServiceProvider.html b/docs/classes/OWC.OpenPub.Base.PostsToPosts.PostsToPostsServiceProvider.html
new file mode 100644
index 0000000..f33ad60
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.PostsToPosts.PostsToPostsServiceProvider.html
@@ -0,0 +1,841 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\PostsToPosts
+
+
+
+
\OWC\OpenPub\Base\PostsToPosts PostsToPostsServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+ No private methods found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $connectionDefaults
+ $connectionDefaults : array
+
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the service provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ registerPostsToPostsConnections()
+
+ registerPostsToPostsConnections()
+ Register P2P connections
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ filterP2PConnectableArgs()
+
+ filterP2PConnectableArgs( $args )
+ method for changing default P2P behaviour. Override by adding additional filter with higher priority (=larger number)
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Redirect.RedirectServiceProvider.html b/docs/classes/OWC.OpenPub.Base.Redirect.RedirectServiceProvider.html
new file mode 100644
index 0000000..df6ce04
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Redirect.RedirectServiceProvider.html
@@ -0,0 +1,782 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Redirect
+
+
+
+
\OWC\OpenPub\Base\Redirect RedirectServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the service provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ redirectToMarketingSite()
+
+ redirectToMarketingSite()
+ Redirect to marketing site.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.Controllers.BaseController.html b/docs/classes/OWC.OpenPub.Base.RestAPI.Controllers.BaseController.html
new file mode 100644
index 0000000..556295a
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.Controllers.BaseController.html
@@ -0,0 +1,806 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\Controllers
+
+
+
+
\OWC\OpenPub\Base\RestAPI\Controllers BaseController
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ addPaginator()
+
+ addPaginator(array $data , \WP_Query $query ) : array
+ Merges a paginator, based on a WP_Query, inside a data arary.
+
+
+ Parameters
+
+
+ array
+ $data
+
+
+
+ \WP_Query
+ $query
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getPaginatorParams()
+
+ getPaginatorParams(\WP_REST_Request $request , integer $limit = 10 ) : array
+ Get the paginator query params for a given query.
+
+
+ Parameters
+
+
+ \WP_REST_Request
+ $request
+
+
+
+ integer
+ $limit
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.Controllers.ItemController.html b/docs/classes/OWC.OpenPub.Base.RestAPI.Controllers.ItemController.html
new file mode 100644
index 0000000..36f9606
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.Controllers.ItemController.html
@@ -0,0 +1,977 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\Controllers
+
+
+
+
\OWC\OpenPub\Base\RestAPI\Controllers ItemController
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getItems()
+
+ getItems(\WP_REST_Request $request ) : array
+ Get a list of all items.
+
+
+ Parameters
+
+
+ \WP_REST_Request
+ $request
+
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getItem()
+
+ getItem(\WP_REST_Request $request ) : array|\WP_Error
+ Get an individual post item.
+
+
+ Parameters
+
+
+ \WP_REST_Request
+ $request
+ $request
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+ Returns
+ array|\WP_Error
+
+
+
+
+
+
+
+
+
+
+ transform()
+
+ transform(\WP_Post $post ) : array
+ Transform a single WP_Post item.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ addPaginator()
+
+ addPaginator(array $data , \WP_Query $query ) : array
+ Merges a paginator, based on a WP_Query, inside a data arary.
+
+
+ Parameters
+
+
+ array
+ $data
+
+
+
+ \WP_Query
+ $query
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getPaginatorParams()
+
+ getPaginatorParams(\WP_REST_Request $request , integer $limit = 10 ) : array
+ Get the paginator query params for a given query.
+
+
+ Parameters
+
+
+ \WP_REST_Request
+ $request
+
+
+
+ integer
+ $limit
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ addRelated()
+
+ addRelated(array $item ) : array
+ Get related items.
+
+
+ Parameters
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.Controllers.SearchController.html b/docs/classes/OWC.OpenPub.Base.RestAPI.Controllers.SearchController.html
new file mode 100644
index 0000000..693af7d
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.Controllers.SearchController.html
@@ -0,0 +1,1031 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\Controllers
+
+
+
+
\OWC\OpenPub\Base\RestAPI\Controllers SearchController
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ getItems()
+
+ getItems(\WP_REST_Request $request ) : array
+ Get a list of all items.
+
+
+ Parameters
+
+
+ \WP_REST_Request
+ $request
+
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getItem()
+
+ getItem(\WP_REST_Request $request ) : array|\WP_Error
+ Get an individual post item.
+
+
+ Parameters
+
+
+ \WP_REST_Request
+ $request
+ $request
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+ Returns
+ array|\WP_Error
+
+
+
+
+
+
+
+
+
+
+ transform()
+
+ transform(\WP_Post $post ) : array
+ Transform a single WP_Post item.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ search()
+
+ search(\WP_REST_Request $request ) : array
+ Search all items.
+
+
+ Parameters
+
+
+ \WP_REST_Request
+ $request
+
+
+
+
+ Throws
+
+ \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+ \ReflectionException
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ addRelated()
+
+ addRelated(array $item ) : array
+ Get related items.
+
+
+ Parameters
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ addPaginator()
+
+ addPaginator(array $data , \WP_Query $query ) : array
+ Merges a paginator, based on a WP_Query, inside a data arary.
+
+
+ Parameters
+
+
+ array
+ $data
+
+
+
+ \WP_Query
+ $query
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getPaginatorParams()
+
+ getPaginatorParams(\WP_REST_Request $request , integer $limit = 10 ) : array
+ Get the paginator query params for a given query.
+
+
+ Parameters
+
+
+ \WP_REST_Request
+ $request
+
+
+
+ integer
+ $limit
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.ConnectedField.html b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.ConnectedField.html
new file mode 100644
index 0000000..319f67e
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.ConnectedField.html
@@ -0,0 +1,806 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\ItemFields
+
+
+
+
\OWC\OpenPub\Base\RestAPI\ItemFields ConnectedField
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $plugin
+ $plugin :
+ Instance of the Plugin.
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+ Makes sure that the plugin is .
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create()
+
+ create(\WP_Post $post ) : array
+ Creates an array of connected posts.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getConnectedItems()
+
+ getConnectedItems(integer $postID , string $type ) : array
+ Get connected items of a post, for a specific connection type.
+
+
+ Parameters
+
+
+ integer
+ $postID
+
+
+
+ string
+ $type
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.DownloadsField.html b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.DownloadsField.html
new file mode 100644
index 0000000..298fb08
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.DownloadsField.html
@@ -0,0 +1,801 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\ItemFields
+
+
+
+
\OWC\OpenPub\Base\RestAPI\ItemFields DownloadsField
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $plugin
+ $plugin :
+ Instance of the Plugin.
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+ Makes sure that the plugin is .
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create()
+
+ create(\WP_Post $post ) : array
+ Get the downloads associated to the post.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getDownloads()
+
+ getDownloads(\WP_Post $post ) : array
+ Get downloads of a post, if URL & title are present.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.FeaturedImageField.html b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.FeaturedImageField.html
new file mode 100644
index 0000000..797c632
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.FeaturedImageField.html
@@ -0,0 +1,801 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\ItemFields
+
+
+
+
\OWC\OpenPub\Base\RestAPI\ItemFields FeaturedImageField
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $plugin
+ $plugin :
+ Instance of the Plugin.
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+ Makes sure that the plugin is .
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create()
+
+ create(\WP_Post $post ) : array
+ Gets the featured image of a post.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getAttachmentMeta()
+
+ getAttachmentMeta( $id ) : array
+ Get meta data of an attachment.
+
+
+ Parameters
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.LinksField.html b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.LinksField.html
new file mode 100644
index 0000000..460ed77
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.LinksField.html
@@ -0,0 +1,801 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\ItemFields
+
+
+
+
\OWC\OpenPub\Base\RestAPI\ItemFields LinksField
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ RestAPI/ItemFields/LinksField.php
+ Package
+ Default
+ Class hierarchy
+
+
+
+ \OWC\OpenPub\Base\RestAPI\ItemFields\LinksField
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $plugin
+ $plugin :
+ Instance of the Plugin.
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+ Makes sure that the plugin is .
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create()
+
+ create(\WP_Post $post ) : array
+ Generate the links field.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getLinks()
+
+ getLinks(\WP_Post $post ) : array
+ Get links of a post, if URL & title are present.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.NotesField.html b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.NotesField.html
new file mode 100644
index 0000000..ff95a3c
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.NotesField.html
@@ -0,0 +1,801 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\ItemFields
+
+
+
+
\OWC\OpenPub\Base\RestAPI\ItemFields NotesField
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+ File
+ RestAPI/ItemFields/NotesField.php
+ Package
+ Default
+ Class hierarchy
+
+
+
+ \OWC\OpenPub\Base\RestAPI\ItemFields\NotesField
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $plugin
+ $plugin :
+ Instance of the Plugin.
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+ Makes sure that the plugin is .
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create()
+
+ create(\WP_Post $post ) : string
+ Creates an array of connected posts.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ getNotes()
+
+ getNotes(\WP_Post $post ) : string
+ Get notes of a post.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.SynonymsField.html b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.SynonymsField.html
new file mode 100644
index 0000000..8d712b2
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.SynonymsField.html
@@ -0,0 +1,801 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\ItemFields
+
+
+
+
\OWC\OpenPub\Base\RestAPI\ItemFields SynonymsField
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $plugin
+ $plugin :
+ Instance of the Plugin.
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+ Makes sure that the plugin is .
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create()
+
+ create(\WP_Post $post ) : string
+ Generate the synonyms field.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+ getSynonyms()
+
+ getSynonyms(\WP_Post $post ) : string
+ Get synonyms of a post, if URL & title are present.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.TaxonomyField.html b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.TaxonomyField.html
new file mode 100644
index 0000000..0d2fc66
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.ItemFields.TaxonomyField.html
@@ -0,0 +1,806 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI\ItemFields
+
+
+
+
\OWC\OpenPub\Base\RestAPI\ItemFields TaxonomyField
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $plugin
+ $plugin :
+ Instance of the Plugin.
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+ Makes sure that the plugin is .
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create()
+
+ create(\WP_Post $post ) : array
+ Create an additional field on an array.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ getTerms()
+
+ getTerms(integer $postID , string $taxonomy ) : array
+ Get terms of a taxonomy to which the post is connected.
+
+
+ Parameters
+
+
+ integer
+ $postID
+
+
+
+ string
+ $taxonomy
+
+
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.RestAPI.RestAPIServiceProvider.html b/docs/classes/OWC.OpenPub.Base.RestAPI.RestAPIServiceProvider.html
new file mode 100644
index 0000000..a429438
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.RestAPI.RestAPIServiceProvider.html
@@ -0,0 +1,869 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\RestAPI
+
+
+
+
\OWC\OpenPub\Base\RestAPI RestAPIServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $namespace
+ $namespace :
+
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the service provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ registerRoutes()
+
+ registerRoutes() : void
+ Register routes on the rest API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ whitelist()
+
+ whitelist( $whitelist ) : array
+ Whitelist endpoints within Config Expander.
+
+
+ Parameters
+
+
+
+ Returns
+ array
+
+
+
+
+
+
+
+
+
+
+ registerModelFields()
+
+ registerModelFields()
+ Register fields for all configured posttypes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Support.CreatesFields.html b/docs/classes/OWC.OpenPub.Base.Support.CreatesFields.html
new file mode 100644
index 0000000..80666bf
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Support.CreatesFields.html
@@ -0,0 +1,761 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Support
+
+
+
+
\OWC\OpenPub\Base\Support CreatesFields
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+ abstract
+
+
+
+ File
+ Support/CreatesFields.php
+ Package
+ Default
+ Class hierarchy
+
+ \OWC\OpenPub\Base\Support\CreatesFields
+
+
+
+
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+ $plugin
+ $plugin :
+ Instance of the Plugin.
+
+
+ Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+ Makes sure that the plugin is .
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ create()
+
+ create(\WP_Post $post ) : mixed
+ Create an additional field on an array.
+
+
+ Parameters
+
+
+ \WP_Post
+ $post
+
+
+
+
+
+ Returns
+ mixed
+
+
+
+
+
+ abstract
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/classes/OWC.OpenPub.Base.Taxonomy.TaxonomyServiceProvider.html b/docs/classes/OWC.OpenPub.Base.Taxonomy.TaxonomyServiceProvider.html
new file mode 100644
index 0000000..d88adc5
--- /dev/null
+++ b/docs/classes/OWC.OpenPub.Base.Taxonomy.TaxonomyServiceProvider.html
@@ -0,0 +1,807 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \OWC\OpenPub\Base\Taxonomy
+
+
+
+
\OWC\OpenPub\Base\Taxonomy TaxonomyServiceProvider
+
+
+
+
+
+ Summary
+
+
+
+
+ No public properties found
+
+
+
+
+
+ No protected methods found
+
+
+
+
+
+
+ No private methods found
+
+
+ No private properties found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $configTaxonomies
+ $configTaxonomies : array
+ the array of taxonomies definitions from the config
+
+
+ Type
+ array
+
+
+
+
+
+
+
+
+
+
+
+
+
+ __construct()
+
+ __construct(\OWC\OpenPub\Base\Foundation\Plugin $plugin )
+
+
+
+ Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ register()
+
+ register()
+ Register the service provider.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ registerTaxonomies()
+
+ registerTaxonomies()
+ Register custom taxonomies via extended_cpts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/css/bootstrap-combined.no-icons.min.css b/docs/css/bootstrap-combined.no-icons.min.css
new file mode 100644
index 0000000..5ab243e
--- /dev/null
+++ b/docs/css/bootstrap-combined.no-icons.min.css
@@ -0,0 +1,732 @@
+/*!
+ * Bootstrap v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
+.clearfix:after{clear:both;}
+.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
+.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
+article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
+audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
+audio:not([controls]){display:none;}
+html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
+a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+a:hover,a:active{outline:0;}
+sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
+sup{top:-0.5em;}
+sub{bottom:-0.25em;}
+img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
+#map_canvas img,.google-maps img{max-width:none;}
+button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
+button,input{*overflow:visible;line-height:normal;}
+button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
+label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer;}
+input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
+input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
+textarea{overflow:auto;vertical-align:top;}
+@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important;} a,a:visited{text-decoration:underline;} a[href]:after{content:" (" attr(href) ")";} abbr[title]:after{content:" (" attr(title) ")";} .ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} pre,blockquote{border:1px solid #999;page-break-inside:avoid;} thead{display:table-header-group;} tr,img{page-break-inside:avoid;} img{max-width:100% !important;} @page {margin:0.5cm;}p,h2,h3{orphans:3;widows:3;} h2,h3{page-break-after:avoid;}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333333;background-color:#ffffff;}
+a{color:#0088cc;text-decoration:none;}
+a:hover,a:focus{color:#005580;text-decoration:underline;}
+.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);}
+.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;}
+.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
+.row:after{clear:both;}
+[class*="span"]{float:left;min-height:1px;margin-left:20px;}
+.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
+.span12{width:940px;}
+.span11{width:860px;}
+.span10{width:780px;}
+.span9{width:700px;}
+.span8{width:620px;}
+.span7{width:540px;}
+.span6{width:460px;}
+.span5{width:380px;}
+.span4{width:300px;}
+.span3{width:220px;}
+.span2{width:140px;}
+.span1{width:60px;}
+.offset12{margin-left:980px;}
+.offset11{margin-left:900px;}
+.offset10{margin-left:820px;}
+.offset9{margin-left:740px;}
+.offset8{margin-left:660px;}
+.offset7{margin-left:580px;}
+.offset6{margin-left:500px;}
+.offset5{margin-left:420px;}
+.offset4{margin-left:340px;}
+.offset3{margin-left:260px;}
+.offset2{margin-left:180px;}
+.offset1{margin-left:100px;}
+.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
+.row-fluid:after{clear:both;}
+.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
+.row-fluid [class*="span"]:first-child{margin-left:0;}
+.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
+.row-fluid .span12{width:100%;*width:99.94680851063829%;}
+.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
+.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
+.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
+.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
+.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
+.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
+.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
+.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
+.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
+.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
+.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
+.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
+.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
+.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
+.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
+.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
+.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
+.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
+.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
+.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
+.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
+.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
+.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
+.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
+.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
+.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
+.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
+.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
+.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
+.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
+.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
+.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
+.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
+.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
+.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
+[class*="span"].hide,.row-fluid [class*="span"].hide{display:none;}
+[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;}
+.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;}
+.container:after{clear:both;}
+.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
+.container-fluid:after{clear:both;}
+p{margin:0 0 10px;}
+.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px;}
+small{font-size:85%;}
+strong{font-weight:bold;}
+em{font-style:italic;}
+cite{font-style:normal;}
+.muted{color:#999999;}
+a.muted:hover,a.muted:focus{color:#808080;}
+.text-warning{color:#c09853;}
+a.text-warning:hover,a.text-warning:focus{color:#a47e3c;}
+.text-error{color:#b94a48;}
+a.text-error:hover,a.text-error:focus{color:#953b39;}
+.text-info{color:#3a87ad;}
+a.text-info:hover,a.text-info:focus{color:#2d6987;}
+.text-success{color:#468847;}
+a.text-success:hover,a.text-success:focus{color:#356635;}
+.text-left{text-align:left;}
+.text-right{text-align:right;}
+.text-center{text-align:center;}
+h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999999;}
+h1,h2,h3{line-height:40px;}
+h1{font-size:38.5px;}
+h2{font-size:31.5px;}
+h3{font-size:24.5px;}
+h4{font-size:17.5px;}
+h5{font-size:14px;}
+h6{font-size:11.9px;}
+h1 small{font-size:24.5px;}
+h2 small{font-size:17.5px;}
+h3 small{font-size:14px;}
+h4 small{font-size:14px;}
+.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eeeeee;}
+ul,ol{padding:0;margin:0 0 10px 25px;}
+ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
+li{line-height:20px;}
+ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
+ul.inline,ol.inline{margin-left:0;list-style:none;}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;*zoom:1;padding-left:5px;padding-right:5px;}
+dl{margin-bottom:20px;}
+dt,dd{line-height:20px;}
+dt{font-weight:bold;}
+dd{margin-left:10px;}
+.dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
+.dl-horizontal:after{clear:both;}
+.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
+.dl-horizontal dd{margin-left:180px;}
+hr{margin:20px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
+abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;}
+abbr.initialism{font-size:90%;text-transform:uppercase;}
+blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25;}
+blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
+blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
+blockquote.pull-right small:before{content:'';}
+blockquote.pull-right small:after{content:'\00A0 \2014';}
+q:before,q:after,blockquote:before,blockquote:after{content:"";}
+address{display:block;margin-bottom:20px;font-style:normal;line-height:20px;}
+code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap;}
+pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;}
+pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0;}
+.pre-scrollable{max-height:340px;overflow-y:scroll;}
+.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#ffffff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;}
+.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;}
+.label:empty,.badge:empty{display:none;}
+a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;}
+.label-important,.badge-important{background-color:#b94a48;}
+.label-important[href],.badge-important[href]{background-color:#953b39;}
+.label-warning,.badge-warning{background-color:#f89406;}
+.label-warning[href],.badge-warning[href]{background-color:#c67605;}
+.label-success,.badge-success{background-color:#468847;}
+.label-success[href],.badge-success[href]{background-color:#356635;}
+.label-info,.badge-info{background-color:#3a87ad;}
+.label-info[href],.badge-info[href]{background-color:#2d6987;}
+.label-inverse,.badge-inverse{background-color:#333333;}
+.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;}
+.btn .label,.btn .badge{position:relative;top:-1px;}
+.btn-mini .label,.btn-mini .badge{top:0;}
+table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
+.table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
+.table th{font-weight:bold;}
+.table thead th{vertical-align:bottom;}
+.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
+.table tbody+tbody{border-top:2px solid #dddddd;}
+.table .table{background-color:#ffffff;}
+.table-condensed th,.table-condensed td{padding:4px 5px;}
+.table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
+.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
+.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
+.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
+.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
+.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;}
+.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;}
+.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
+.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
+.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}
+.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5;}
+table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;}
+.table td.span1,.table th.span1{float:none;width:44px;margin-left:0;}
+.table td.span2,.table th.span2{float:none;width:124px;margin-left:0;}
+.table td.span3,.table th.span3{float:none;width:204px;margin-left:0;}
+.table td.span4,.table th.span4{float:none;width:284px;margin-left:0;}
+.table td.span5,.table th.span5{float:none;width:364px;margin-left:0;}
+.table td.span6,.table th.span6{float:none;width:444px;margin-left:0;}
+.table td.span7,.table th.span7{float:none;width:524px;margin-left:0;}
+.table td.span8,.table th.span8{float:none;width:604px;margin-left:0;}
+.table td.span9,.table th.span9{float:none;width:684px;margin-left:0;}
+.table td.span10,.table th.span10{float:none;width:764px;margin-left:0;}
+.table td.span11,.table th.span11{float:none;width:844px;margin-left:0;}
+.table td.span12,.table th.span12{float:none;width:924px;margin-left:0;}
+.table tbody tr.success>td{background-color:#dff0d8;}
+.table tbody tr.error>td{background-color:#f2dede;}
+.table tbody tr.warning>td{background-color:#fcf8e3;}
+.table tbody tr.info>td{background-color:#d9edf7;}
+.table-hover tbody tr.success:hover>td{background-color:#d0e9c6;}
+.table-hover tbody tr.error:hover>td{background-color:#ebcccc;}
+.table-hover tbody tr.warning:hover>td{background-color:#faf2cc;}
+.table-hover tbody tr.info:hover>td{background-color:#c4e3f3;}
+form{margin:0 0 20px;}
+fieldset{padding:0;margin:0;border:0;}
+legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}legend small{font-size:15px;color:#999999;}
+label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px;}
+input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
+label{display:block;margin-bottom:5px;}
+select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle;}
+input,textarea,.uneditable-input{width:206px;}
+textarea{height:auto;}
+textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);}
+input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;}
+input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;}
+select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;}
+select{width:220px;border:1px solid #cccccc;background-color:#ffffff;}
+select[multiple],select[size]{height:auto;}
+select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+.uneditable-input,.uneditable-textarea{color:#999999;background-color:#fcfcfc;border-color:#cccccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
+.uneditable-input{overflow:hidden;white-space:nowrap;}
+.uneditable-textarea{width:auto;height:auto;}
+input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
+input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
+input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
+.radio,.checkbox{min-height:20px;padding-left:20px;}
+.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;}
+.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
+.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
+.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
+.input-mini{width:60px;}
+.input-small{width:90px;}
+.input-medium{width:150px;}
+.input-large{width:210px;}
+.input-xlarge{width:270px;}
+.input-xxlarge{width:530px;}
+input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;}
+.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;}
+input,textarea,.uneditable-input{margin-left:0;}
+.controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
+input.span12,textarea.span12,.uneditable-input.span12{width:926px;}
+input.span11,textarea.span11,.uneditable-input.span11{width:846px;}
+input.span10,textarea.span10,.uneditable-input.span10{width:766px;}
+input.span9,textarea.span9,.uneditable-input.span9{width:686px;}
+input.span8,textarea.span8,.uneditable-input.span8{width:606px;}
+input.span7,textarea.span7,.uneditable-input.span7{width:526px;}
+input.span6,textarea.span6,.uneditable-input.span6{width:446px;}
+input.span5,textarea.span5,.uneditable-input.span5{width:366px;}
+input.span4,textarea.span4,.uneditable-input.span4{width:286px;}
+input.span3,textarea.span3,.uneditable-input.span3{width:206px;}
+input.span2,textarea.span2,.uneditable-input.span2{width:126px;}
+input.span1,textarea.span1,.uneditable-input.span1{width:46px;}
+.controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
+.controls-row:after{clear:both;}
+.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;}
+.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;}
+input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;}
+input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;}
+.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
+.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
+.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
+.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
+.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
+.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
+.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
+.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
+.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
+.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
+.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
+.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
+.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
+.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
+.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
+.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
+input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
+.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
+.form-actions:after{clear:both;}
+.help-block,.help-inline{color:#595959;}
+.help-block{display:block;margin-bottom:10px;}
+.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
+.input-append,.input-prepend{display:inline-block;margin-bottom:10px;vertical-align:middle;font-size:0;white-space:nowrap;}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px;}
+.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;}
+.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #ccc;}
+.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546;}
+.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
+.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
+.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;}
+.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
+.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.input-prepend.input-append .btn-group:first-child{margin-left:0;}
+input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
+.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
+.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
+.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
+.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
+.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;}
+.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
+.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;}
+.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
+.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
+.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;}
+.control-group{margin-bottom:10px;}
+legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;}
+.form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
+.form-horizontal .control-group:after{clear:both;}
+.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;}
+.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:180px;}
+.form-horizontal .help-block{margin-bottom:0;}
+.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px;}
+.form-horizontal .form-actions{padding-left:180px;}
+.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333333;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #cccccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
+.btn:active,.btn.active{background-color:#cccccc \9;}
+.btn:first-child{*margin-left:0;}
+.btn:hover,.btn:focus{color:#333333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
+.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
+.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
+.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px;}
+.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;}
+.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px;}
+.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
+.btn-block+.btn-block{margin-top:5px;}
+input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}
+.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
+.btn-primary{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(to bottom, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0044cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;}
+.btn-primary:active,.btn-primary.active{background-color:#003399 \9;}
+.btn-warning{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;}
+.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
+.btn-danger{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
+.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
+.btn-success{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(to bottom, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
+.btn-success:active,.btn-success.active{background-color:#408140 \9;}
+.btn-info{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(to bottom, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
+.btn-info:active,.btn-info.active{background-color:#24748c \9;}
+.btn-inverse{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#363636;background-image:-moz-linear-gradient(top, #444444, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));background-image:-webkit-linear-gradient(top, #444444, #222222);background-image:-o-linear-gradient(top, #444444, #222222);background-image:linear-gradient(to bottom, #444444, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
+.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
+button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
+button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
+button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
+button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
+.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
+.btn-link{border-color:transparent;cursor:pointer;color:#0088cc;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent;}
+.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333333;text-decoration:none;}
+.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em;}.btn-group:first-child{*margin-left:0;}
+.btn-group+.btn-group{margin-left:5px;}
+.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px;}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px;}
+.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.btn-group>.btn+.btn{margin-left:-1px;}
+.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px;}
+.btn-group>.btn-mini{font-size:10.5px;}
+.btn-group>.btn-small{font-size:11.9px;}
+.btn-group>.btn-large{font-size:17.5px;}
+.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
+.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
+.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
+.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;}
+.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
+.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px;}
+.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px;}
+.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px;}
+.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px;}
+.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
+.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;}
+.btn-group.open .btn-primary.dropdown-toggle{background-color:#0044cc;}
+.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;}
+.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;}
+.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;}
+.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;}
+.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;}
+.btn .caret{margin-top:8px;margin-left:0;}
+.btn-large .caret{margin-top:6px;}
+.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px;}
+.btn-mini .caret,.btn-small .caret{margin-top:8px;}
+.dropup .btn-large .caret{border-bottom-width:5px;}
+.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+.btn-group-vertical{display:inline-block;*display:inline;*zoom:1;}
+.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px;}
+.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}
+.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}
+.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;}
+.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
+.nav{margin-left:0;margin-bottom:20px;list-style:none;}
+.nav>li>a{display:block;}
+.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;}
+.nav>li>a>img{max-width:none;}
+.nav>.pull-right{float:right;}
+.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
+.nav li+.nav-header{margin-top:9px;}
+.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
+.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
+.nav-list>li>a{padding:3px 15px;}
+.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;}
+.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;}
+.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
+.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
+.nav-tabs:after,.nav-pills:after{clear:both;}
+.nav-tabs>li,.nav-pills>li{float:left;}
+.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
+.nav-tabs{border-bottom:1px solid #ddd;}
+.nav-tabs>li{margin-bottom:-1px;}
+.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #dddddd;}
+.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
+.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
+.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#ffffff;background-color:#0088cc;}
+.nav-stacked>li{float:none;}
+.nav-stacked>li>a{margin-right:0;}
+.nav-tabs.nav-stacked{border-bottom:0;}
+.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
+.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{border-color:#ddd;z-index:2;}
+.nav-pills.nav-stacked>li>a{margin-bottom:3px;}
+.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
+.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
+.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.nav .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;}
+.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580;}
+.nav-tabs .dropdown-toggle .caret{margin-top:8px;}
+.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;}
+.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
+.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer;}
+.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#ffffff;background-color:#999999;border-color:#999999;}
+.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
+.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999999;}
+.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
+.tabbable:after{clear:both;}
+.tab-content{overflow:auto;}
+.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;}
+.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
+.tab-content>.active,.pill-content>.active{display:block;}
+.tabs-below>.nav-tabs{border-top:1px solid #ddd;}
+.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;}
+.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-bottom-color:transparent;border-top-color:#ddd;}
+.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd;}
+.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}
+.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
+.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
+.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
+.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
+.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
+.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
+.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
+.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
+.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
+.nav>.disabled>a{color:#999999;}
+.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;background-color:transparent;cursor:default;}
+.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2;}
+.navbar-inner{min-height:40px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);*zoom:1;}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;}
+.navbar-inner:after{clear:both;}
+.navbar .container{width:auto;}
+.nav-collapse.collapse{height:auto;overflow:visible;}
+.navbar .brand{float:left;display:block;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777777;text-shadow:0 1px 0 #ffffff;}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none;}
+.navbar-text{margin-bottom:0;line-height:40px;color:#777777;}
+.navbar-link{color:#777777;}.navbar-link:hover,.navbar-link:focus{color:#333333;}
+.navbar .divider-vertical{height:40px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #ffffff;}
+.navbar .btn,.navbar .btn-group{margin-top:5px;}
+.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0;}
+.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
+.navbar-form:after{clear:both;}
+.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;}
+.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;}
+.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
+.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
+.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
+.navbar-static-top{position:static;margin-bottom:0;}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
+.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;}
+.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;}
+.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
+.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
+.navbar-fixed-top{top:0;}
+.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1);}
+.navbar-fixed-bottom{bottom:0;}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1);}
+.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
+.navbar .nav.pull-right{float:right;margin-right:0;}
+.navbar .nav>li{float:left;}
+.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777777;text-decoration:none;text-shadow:0 1px 0 #ffffff;}
+.navbar .nav .dropdown-toggle .caret{margin-top:8px;}
+.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333333;text-decoration:none;}
+.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);-moz-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);}
+.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));background-image:-webkit-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-o-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:linear-gradient(to bottom, #f2f2f2, #e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;}
+.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
+.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
+.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
+.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
+.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
+.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
+.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
+.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;}
+.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555555;}
+.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777777;border-bottom-color:#777777;}
+.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
+.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;}
+.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;}
+.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
+.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top, #222222, #111111);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));background-image:-webkit-linear-gradient(top, #222222, #111111);background-image:-o-linear-gradient(top, #222222, #111111);background-image:linear-gradient(to bottom, #222222, #111111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525;}
+.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999999;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#ffffff;}
+.navbar-inverse .brand{color:#999999;}
+.navbar-inverse .navbar-text{color:#999999;}
+.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#ffffff;}
+.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#ffffff;background-color:#111111;}
+.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#ffffff;}
+.navbar-inverse .divider-vertical{border-left-color:#111111;border-right-color:#222222;}
+.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111111;color:#ffffff;}
+.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999999;border-bottom-color:#999999;}
+.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+.navbar-inverse .navbar-search .search-query{color:#ffffff;background-color:#515151;border-color:#111111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
+.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
+.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
+.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;}
+.navbar-inverse .btn-navbar{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #040404);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));background-image:-webkit-linear-gradient(top, #151515, #040404);background-image:-o-linear-gradient(top, #151515, #040404);background-image:linear-gradient(to bottom, #151515, #040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);border-color:#040404 #040404 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;}
+.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;}
+.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}.breadcrumb>li>.divider{padding:0 5px;color:#ccc;}
+.breadcrumb>.active{color:#999999;}
+.pagination{margin:20px 0;}
+.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
+.pagination ul>li{display:inline;}
+.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;border-left-width:0;}
+.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5;}
+.pagination ul>.active>a,.pagination ul>.active>span{color:#999999;cursor:default;}
+.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999999;background-color:transparent;cursor:default;}
+.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
+.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
+.pagination-centered{text-align:center;}
+.pagination-right{text-align:right;}
+.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px;}
+.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
+.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
+.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px;}
+.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;}
+.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px;}
+.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px;}
+.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";line-height:0;}
+.pager:after{clear:both;}
+.pager li{display:inline;}
+.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
+.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5;}
+.pager .next>a,.pager .next>span{float:right;}
+.pager .previous>a,.pager .previous>span{float:left;}
+.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#fff;cursor:default;}
+.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;}
+.thumbnails:after{clear:both;}
+.row-fluid .thumbnails{margin-left:0;}
+.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px;}
+.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
+a.thumbnail:hover,a.thumbnail:focus{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
+.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;}
+.thumbnail .caption{padding:9px;color:#555555;}
+.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.alert,.alert h4{color:#c09853;}
+.alert h4{margin:0;}
+.alert .close{position:relative;top:-2px;right:-21px;line-height:20px;}
+.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}
+.alert-success h4{color:#468847;}
+.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;}
+.alert-danger h4,.alert-error h4{color:#b94a48;}
+.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}
+.alert-info h4{color:#3a87ad;}
+.alert-block{padding-top:14px;padding-bottom:14px;}
+.alert-block>p,.alert-block>ul{margin-bottom:0;}
+.alert-block p+p{margin-top:5px;}
+@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.progress .bar{width:0%;height:100%;color:#ffffff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
+.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);}
+.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
+.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
+.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(to bottom, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);}
+.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(to bottom, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);}
+.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(to bottom, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);}
+.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);}
+.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
+.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;}
+.hero-unit li{line-height:30px;}
+.media,.media-body{overflow:hidden;*overflow:visible;zoom:1;}
+.media,.media .media{margin-top:15px;}
+.media:first-child{margin-top:0;}
+.media-object{display:block;}
+.media-heading{margin:0 0 5px;}
+.media>.pull-left{margin-right:10px;}
+.media>.pull-right{margin-left:10px;}
+.media-list{margin-left:0;list-style:none;}
+.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
+.tooltip.top{margin-top:-3px;padding:5px 0;}
+.tooltip.right{margin-left:3px;padding:0 5px;}
+.tooltip.bottom{margin-top:3px;padding:5px 0;}
+.tooltip.left{margin-left:-3px;padding:0 5px;}
+.tooltip-inner{max-width:200px;padding:8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
+.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
+.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
+.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
+.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
+.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;}
+.popover.right{margin-left:10px;}
+.popover.bottom{margin-top:10px;}
+.popover.left{margin-left:-10px;}
+.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}.popover-title:empty{display:none;}
+.popover-content{padding:9px 14px;}
+.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}
+.popover .arrow{border-width:11px;}
+.popover .arrow:after{border-width:10px;content:"";}
+.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;}
+.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;}
+.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;}
+.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;}
+.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
+.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
+.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
+.modal.fade.in{top:10%;}
+.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
+.modal-header h3{margin:0;line-height:30px;}
+.modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px;}
+.modal-form{margin-bottom:0;}
+.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
+.modal-footer:after{clear:both;}
+.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
+.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
+.modal-footer .btn-block+.btn-block{margin-left:0;}
+.dropup,.dropdown{position:relative;}
+.dropdown-toggle{*margin-bottom:-3px;}
+.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
+.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";}
+.dropdown .caret{margin-top:8px;margin-left:2px;}
+.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
+.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
+.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;}
+.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{text-decoration:none;color:#ffffff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
+.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
+.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;}
+.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default;}
+.open{*z-index:1000;}.open>.dropdown-menu{display:block;}
+.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}
+.pull-right>.dropdown-menu{right:0;left:auto;}
+.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";}
+.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
+.dropdown-submenu{position:relative;}
+.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
+.dropdown-submenu:hover>.dropdown-menu{display:block;}
+.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;}
+.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}
+.dropdown-submenu:hover>a:after{border-left-color:#ffffff;}
+.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
+.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;}
+.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.accordion{margin-bottom:20px;}
+.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.accordion-heading{border-bottom:0;}
+.accordion-heading .accordion-toggle{display:block;padding:8px 15px;}
+.accordion-toggle{cursor:pointer;}
+.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
+.carousel{position:relative;margin-bottom:20px;line-height:1;}
+.carousel-inner{overflow:hidden;width:100%;position:relative;}
+.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1;}
+.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;}
+.carousel-inner>.active{left:0;}
+.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;}
+.carousel-inner>.next{left:100%;}
+.carousel-inner>.prev{left:-100%;}
+.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;}
+.carousel-inner>.active.left{left:-100%;}
+.carousel-inner>.active.right{left:100%;}
+.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;}
+.carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
+.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none;}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255, 255, 255, 0.25);border-radius:5px;}
+.carousel-indicators .active{background-color:#fff;}
+.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333333;background:rgba(0, 0, 0, 0.75);}
+.carousel-caption h4,.carousel-caption p{color:#ffffff;line-height:20px;}
+.carousel-caption h4{margin:0 0 5px;}
+.carousel-caption p{margin-bottom:0;}
+.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
+.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);}
+button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
+.pull-right{float:right;}
+.pull-left{float:left;}
+.hide{display:none;}
+.show{display:block;}
+.invisible{visibility:hidden;}
+.affix{position:fixed;}
+.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
+.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;}
+@-ms-viewport{width:device-width;}.hidden{display:none;visibility:hidden;}
+.visible-phone{display:none !important;}
+.visible-tablet{display:none !important;}
+.hidden-desktop{display:none !important;}
+.visible-desktop{display:inherit !important;}
+@media (min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important ;} .visible-tablet{display:inherit !important;} .hidden-tablet{display:none !important;}}@media (max-width:767px){.hidden-desktop{display:inherit !important;} .visible-desktop{display:none !important;} .visible-phone{display:inherit !important;} .hidden-phone{display:none !important;}}.visible-print{display:none !important;}
+@media print{.visible-print{display:inherit !important;} .hidden-print{display:none !important;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-left:-20px;margin-right:-20px;} .container-fluid{padding:0;} .dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} .dl-horizontal dd{margin-left:0;} .container{width:auto;} .row-fluid{width:100%;} .row,.thumbnails{margin-left:0;} .thumbnails>li{float:none;margin-left:0;} [class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .row-fluid [class*="offset"]:first-child{margin-left:0;} .input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} .input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;} .controls-row [class*="span"]+[class*="span"]{margin-left:0;} .modal{position:fixed;top:20px;left:20px;right:20px;width:auto;margin:0;}.modal.fade{top:-100px;} .modal.fade.in{top:20px;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:20px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .media .pull-left,.media .pull-right{float:none;display:block;margin-bottom:10px;} .media-object{margin-right:0;margin-left:0;} .modal{top:10px;left:10px;right:10px;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:20px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%;} .row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%;} .row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%;} .row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%;} .row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%;} .row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%;} .row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%;} .row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%;} .row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%;} .row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%;} .row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%;} .row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%;} .row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%;} .row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%;} .row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%;} .row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%;} .row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%;} .row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%;} .row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%;} .row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%;} .row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%;} .row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%;} .row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%;} .row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%;} .row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%;} .row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%;} .row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%;} .row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%;} .row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%;} .row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%;} .row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%;} .row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%;} .row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%;} .row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%;} .row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:20px;} input.span12,textarea.span12,.uneditable-input.span12{width:710px;} input.span11,textarea.span11,.uneditable-input.span11{width:648px;} input.span10,textarea.span10,.uneditable-input.span10{width:586px;} input.span9,textarea.span9,.uneditable-input.span9{width:524px;} input.span8,textarea.span8,.uneditable-input.span8{width:462px;} input.span7,textarea.span7,.uneditable-input.span7{width:400px;} input.span6,textarea.span6,.uneditable-input.span6{width:338px;} input.span5,textarea.span5,.uneditable-input.span5{width:276px;} input.span4,textarea.span4,.uneditable-input.span4{width:214px;} input.span3,textarea.span3,.uneditable-input.span3{width:152px;} input.span2,textarea.span2,.uneditable-input.span2{width:90px;} input.span1,textarea.span1,.uneditable-input.span1{width:28px;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;} .row:after{clear:both;} [class*="span"]{float:left;min-height:1px;margin-left:30px;} .container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%;} .row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%;} .row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%;} .row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%;} .row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%;} .row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%;} .row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%;} .row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%;} .row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%;} .row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%;} .row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%;} .row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%;} .row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%;} .row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%;} .row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%;} .row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%;} .row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%;} .row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%;} .row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%;} .row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%;} .row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%;} .row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%;} .row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%;} .row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%;} .row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%;} .row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%;} .row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%;} .row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%;} .row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%;} .row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%;} .row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%;} .row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%;} .row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%;} .row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%;} .row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%;} input,textarea,.uneditable-input{margin-left:0;} .controls-row [class*="span"]+[class*="span"]{margin-left:30px;} input.span12,textarea.span12,.uneditable-input.span12{width:1156px;} input.span11,textarea.span11,.uneditable-input.span11{width:1056px;} input.span10,textarea.span10,.uneditable-input.span10{width:956px;} input.span9,textarea.span9,.uneditable-input.span9{width:856px;} input.span8,textarea.span8,.uneditable-input.span8{width:756px;} input.span7,textarea.span7,.uneditable-input.span7{width:656px;} input.span6,textarea.span6,.uneditable-input.span6{width:556px;} input.span5,textarea.span5,.uneditable-input.span5{width:456px;} input.span4,textarea.span4,.uneditable-input.span4{width:356px;} input.span3,textarea.span3,.uneditable-input.span3{width:256px;} input.span2,textarea.span2,.uneditable-input.span2{width:156px;} input.span1,textarea.span1,.uneditable-input.span1{width:56px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;} .row-fluid .thumbnails{margin-left:0;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top,.navbar-fixed-bottom{position:static;} .navbar-fixed-top{margin-bottom:20px;} .navbar-fixed-bottom{margin-top:20px;} .navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .nav-collapse{clear:both;} .nav-collapse .nav{float:none;margin:0 0 10px;} .nav-collapse .nav>li{float:none;} .nav-collapse .nav>li>a{margin-bottom:2px;} .nav-collapse .nav>.divider-vertical{display:none;} .nav-collapse .nav .nav-header{color:#777777;text-shadow:none;} .nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} .nav-collapse .dropdown-menu li+li a{margin-bottom:2px;} .nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2;} .navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999999;} .navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111111;} .nav-collapse.in .btn-group{margin-top:5px;padding:0;} .nav-collapse .dropdown-menu{position:static;top:auto;left:auto;float:none;display:none;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .nav-collapse .open>.dropdown-menu{display:block;} .nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none;} .nav-collapse .dropdown-menu .divider{display:none;} .nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none;} .nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);} .navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111111;border-bottom-color:#111111;} .navbar .nav-collapse .nav.pull-right{float:none;margin-left:0;} .nav-collapse,.nav-collapse.collapse{overflow:hidden;height:0;} .navbar .btn-navbar{display:block;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}}
diff --git a/docs/css/font-awesome.min.css b/docs/css/font-awesome.min.css
new file mode 100644
index 0000000..866437f
--- /dev/null
+++ b/docs/css/font-awesome.min.css
@@ -0,0 +1,403 @@
+@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;}
+[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;}
+.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;}
+a [class^="icon-"],a [class*=" icon-"]{display:inline;}
+[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;}
+.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;}
+.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;}
+[class^="icon-"].hide,[class*=" icon-"].hide{display:none;}
+.icon-muted{color:#eeeeee;}
+.icon-light{color:#ffffff;}
+.icon-dark{color:#333333;}
+.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
+.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
+.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
+.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;}
+.pull-right{float:right;}
+.pull-left{float:left;}
+[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;}
+[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;}
+[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;}
+.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;}
+.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;}
+.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;}
+.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;}
+.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;}
+.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;}
+.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;}
+.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;}
+.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;}
+.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;}
+.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;}
+.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;}
+.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;}
+.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;}
+a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;}
+@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);}
+.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);}
+.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);}
+.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);}
+.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);}
+a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;}
+.icon-glass:before{content:"\f000";}
+.icon-music:before{content:"\f001";}
+.icon-search:before{content:"\f002";}
+.icon-envelope-alt:before{content:"\f003";}
+.icon-heart:before{content:"\f004";}
+.icon-star:before{content:"\f005";}
+.icon-star-empty:before{content:"\f006";}
+.icon-user:before{content:"\f007";}
+.icon-film:before{content:"\f008";}
+.icon-th-large:before{content:"\f009";}
+.icon-th:before{content:"\f00a";}
+.icon-th-list:before{content:"\f00b";}
+.icon-ok:before{content:"\f00c";}
+.icon-remove:before{content:"\f00d";}
+.icon-zoom-in:before{content:"\f00e";}
+.icon-zoom-out:before{content:"\f010";}
+.icon-power-off:before,.icon-off:before{content:"\f011";}
+.icon-signal:before{content:"\f012";}
+.icon-gear:before,.icon-cog:before{content:"\f013";}
+.icon-trash:before{content:"\f014";}
+.icon-home:before{content:"\f015";}
+.icon-file-alt:before{content:"\f016";}
+.icon-time:before{content:"\f017";}
+.icon-road:before{content:"\f018";}
+.icon-download-alt:before{content:"\f019";}
+.icon-download:before{content:"\f01a";}
+.icon-upload:before{content:"\f01b";}
+.icon-inbox:before{content:"\f01c";}
+.icon-play-circle:before{content:"\f01d";}
+.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";}
+.icon-refresh:before{content:"\f021";}
+.icon-list-alt:before{content:"\f022";}
+.icon-lock:before{content:"\f023";}
+.icon-flag:before{content:"\f024";}
+.icon-headphones:before{content:"\f025";}
+.icon-volume-off:before{content:"\f026";}
+.icon-volume-down:before{content:"\f027";}
+.icon-volume-up:before{content:"\f028";}
+.icon-qrcode:before{content:"\f029";}
+.icon-barcode:before{content:"\f02a";}
+.icon-tag:before{content:"\f02b";}
+.icon-tags:before{content:"\f02c";}
+.icon-book:before{content:"\f02d";}
+.icon-bookmark:before{content:"\f02e";}
+.icon-print:before{content:"\f02f";}
+.icon-camera:before{content:"\f030";}
+.icon-font:before{content:"\f031";}
+.icon-bold:before{content:"\f032";}
+.icon-italic:before{content:"\f033";}
+.icon-text-height:before{content:"\f034";}
+.icon-text-width:before{content:"\f035";}
+.icon-align-left:before{content:"\f036";}
+.icon-align-center:before{content:"\f037";}
+.icon-align-right:before{content:"\f038";}
+.icon-align-justify:before{content:"\f039";}
+.icon-list:before{content:"\f03a";}
+.icon-indent-left:before{content:"\f03b";}
+.icon-indent-right:before{content:"\f03c";}
+.icon-facetime-video:before{content:"\f03d";}
+.icon-picture:before{content:"\f03e";}
+.icon-pencil:before{content:"\f040";}
+.icon-map-marker:before{content:"\f041";}
+.icon-adjust:before{content:"\f042";}
+.icon-tint:before{content:"\f043";}
+.icon-edit:before{content:"\f044";}
+.icon-share:before{content:"\f045";}
+.icon-check:before{content:"\f046";}
+.icon-move:before{content:"\f047";}
+.icon-step-backward:before{content:"\f048";}
+.icon-fast-backward:before{content:"\f049";}
+.icon-backward:before{content:"\f04a";}
+.icon-play:before{content:"\f04b";}
+.icon-pause:before{content:"\f04c";}
+.icon-stop:before{content:"\f04d";}
+.icon-forward:before{content:"\f04e";}
+.icon-fast-forward:before{content:"\f050";}
+.icon-step-forward:before{content:"\f051";}
+.icon-eject:before{content:"\f052";}
+.icon-chevron-left:before{content:"\f053";}
+.icon-chevron-right:before{content:"\f054";}
+.icon-plus-sign:before{content:"\f055";}
+.icon-minus-sign:before{content:"\f056";}
+.icon-remove-sign:before{content:"\f057";}
+.icon-ok-sign:before{content:"\f058";}
+.icon-question-sign:before{content:"\f059";}
+.icon-info-sign:before{content:"\f05a";}
+.icon-screenshot:before{content:"\f05b";}
+.icon-remove-circle:before{content:"\f05c";}
+.icon-ok-circle:before{content:"\f05d";}
+.icon-ban-circle:before{content:"\f05e";}
+.icon-arrow-left:before{content:"\f060";}
+.icon-arrow-right:before{content:"\f061";}
+.icon-arrow-up:before{content:"\f062";}
+.icon-arrow-down:before{content:"\f063";}
+.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";}
+.icon-resize-full:before{content:"\f065";}
+.icon-resize-small:before{content:"\f066";}
+.icon-plus:before{content:"\f067";}
+.icon-minus:before{content:"\f068";}
+.icon-asterisk:before{content:"\f069";}
+.icon-exclamation-sign:before{content:"\f06a";}
+.icon-gift:before{content:"\f06b";}
+.icon-leaf:before{content:"\f06c";}
+.icon-fire:before{content:"\f06d";}
+.icon-eye-open:before{content:"\f06e";}
+.icon-eye-close:before{content:"\f070";}
+.icon-warning-sign:before{content:"\f071";}
+.icon-plane:before{content:"\f072";}
+.icon-calendar:before{content:"\f073";}
+.icon-random:before{content:"\f074";}
+.icon-comment:before{content:"\f075";}
+.icon-magnet:before{content:"\f076";}
+.icon-chevron-up:before{content:"\f077";}
+.icon-chevron-down:before{content:"\f078";}
+.icon-retweet:before{content:"\f079";}
+.icon-shopping-cart:before{content:"\f07a";}
+.icon-folder-close:before{content:"\f07b";}
+.icon-folder-open:before{content:"\f07c";}
+.icon-resize-vertical:before{content:"\f07d";}
+.icon-resize-horizontal:before{content:"\f07e";}
+.icon-bar-chart:before{content:"\f080";}
+.icon-twitter-sign:before{content:"\f081";}
+.icon-facebook-sign:before{content:"\f082";}
+.icon-camera-retro:before{content:"\f083";}
+.icon-key:before{content:"\f084";}
+.icon-gears:before,.icon-cogs:before{content:"\f085";}
+.icon-comments:before{content:"\f086";}
+.icon-thumbs-up-alt:before{content:"\f087";}
+.icon-thumbs-down-alt:before{content:"\f088";}
+.icon-star-half:before{content:"\f089";}
+.icon-heart-empty:before{content:"\f08a";}
+.icon-signout:before{content:"\f08b";}
+.icon-linkedin-sign:before{content:"\f08c";}
+.icon-pushpin:before{content:"\f08d";}
+.icon-external-link:before{content:"\f08e";}
+.icon-signin:before{content:"\f090";}
+.icon-trophy:before{content:"\f091";}
+.icon-github-sign:before{content:"\f092";}
+.icon-upload-alt:before{content:"\f093";}
+.icon-lemon:before{content:"\f094";}
+.icon-phone:before{content:"\f095";}
+.icon-unchecked:before,.icon-check-empty:before{content:"\f096";}
+.icon-bookmark-empty:before{content:"\f097";}
+.icon-phone-sign:before{content:"\f098";}
+.icon-twitter:before{content:"\f099";}
+.icon-facebook:before{content:"\f09a";}
+.icon-github:before{content:"\f09b";}
+.icon-unlock:before{content:"\f09c";}
+.icon-credit-card:before{content:"\f09d";}
+.icon-rss:before{content:"\f09e";}
+.icon-hdd:before{content:"\f0a0";}
+.icon-bullhorn:before{content:"\f0a1";}
+.icon-bell:before{content:"\f0a2";}
+.icon-certificate:before{content:"\f0a3";}
+.icon-hand-right:before{content:"\f0a4";}
+.icon-hand-left:before{content:"\f0a5";}
+.icon-hand-up:before{content:"\f0a6";}
+.icon-hand-down:before{content:"\f0a7";}
+.icon-circle-arrow-left:before{content:"\f0a8";}
+.icon-circle-arrow-right:before{content:"\f0a9";}
+.icon-circle-arrow-up:before{content:"\f0aa";}
+.icon-circle-arrow-down:before{content:"\f0ab";}
+.icon-globe:before{content:"\f0ac";}
+.icon-wrench:before{content:"\f0ad";}
+.icon-tasks:before{content:"\f0ae";}
+.icon-filter:before{content:"\f0b0";}
+.icon-briefcase:before{content:"\f0b1";}
+.icon-fullscreen:before{content:"\f0b2";}
+.icon-group:before{content:"\f0c0";}
+.icon-link:before{content:"\f0c1";}
+.icon-cloud:before{content:"\f0c2";}
+.icon-beaker:before{content:"\f0c3";}
+.icon-cut:before{content:"\f0c4";}
+.icon-copy:before{content:"\f0c5";}
+.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";}
+.icon-save:before{content:"\f0c7";}
+.icon-sign-blank:before{content:"\f0c8";}
+.icon-reorder:before{content:"\f0c9";}
+.icon-list-ul:before{content:"\f0ca";}
+.icon-list-ol:before{content:"\f0cb";}
+.icon-strikethrough:before{content:"\f0cc";}
+.icon-underline:before{content:"\f0cd";}
+.icon-table:before{content:"\f0ce";}
+.icon-magic:before{content:"\f0d0";}
+.icon-truck:before{content:"\f0d1";}
+.icon-pinterest:before{content:"\f0d2";}
+.icon-pinterest-sign:before{content:"\f0d3";}
+.icon-google-plus-sign:before{content:"\f0d4";}
+.icon-google-plus:before{content:"\f0d5";}
+.icon-money:before{content:"\f0d6";}
+.icon-caret-down:before{content:"\f0d7";}
+.icon-caret-up:before{content:"\f0d8";}
+.icon-caret-left:before{content:"\f0d9";}
+.icon-caret-right:before{content:"\f0da";}
+.icon-columns:before{content:"\f0db";}
+.icon-sort:before{content:"\f0dc";}
+.icon-sort-down:before{content:"\f0dd";}
+.icon-sort-up:before{content:"\f0de";}
+.icon-envelope:before{content:"\f0e0";}
+.icon-linkedin:before{content:"\f0e1";}
+.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";}
+.icon-legal:before{content:"\f0e3";}
+.icon-dashboard:before{content:"\f0e4";}
+.icon-comment-alt:before{content:"\f0e5";}
+.icon-comments-alt:before{content:"\f0e6";}
+.icon-bolt:before{content:"\f0e7";}
+.icon-sitemap:before{content:"\f0e8";}
+.icon-umbrella:before{content:"\f0e9";}
+.icon-paste:before{content:"\f0ea";}
+.icon-lightbulb:before{content:"\f0eb";}
+.icon-exchange:before{content:"\f0ec";}
+.icon-cloud-download:before{content:"\f0ed";}
+.icon-cloud-upload:before{content:"\f0ee";}
+.icon-user-md:before{content:"\f0f0";}
+.icon-stethoscope:before{content:"\f0f1";}
+.icon-suitcase:before{content:"\f0f2";}
+.icon-bell-alt:before{content:"\f0f3";}
+.icon-coffee:before{content:"\f0f4";}
+.icon-food:before{content:"\f0f5";}
+.icon-file-text-alt:before{content:"\f0f6";}
+.icon-building:before{content:"\f0f7";}
+.icon-hospital:before{content:"\f0f8";}
+.icon-ambulance:before{content:"\f0f9";}
+.icon-medkit:before{content:"\f0fa";}
+.icon-fighter-jet:before{content:"\f0fb";}
+.icon-beer:before{content:"\f0fc";}
+.icon-h-sign:before{content:"\f0fd";}
+.icon-plus-sign-alt:before{content:"\f0fe";}
+.icon-double-angle-left:before{content:"\f100";}
+.icon-double-angle-right:before{content:"\f101";}
+.icon-double-angle-up:before{content:"\f102";}
+.icon-double-angle-down:before{content:"\f103";}
+.icon-angle-left:before{content:"\f104";}
+.icon-angle-right:before{content:"\f105";}
+.icon-angle-up:before{content:"\f106";}
+.icon-angle-down:before{content:"\f107";}
+.icon-desktop:before{content:"\f108";}
+.icon-laptop:before{content:"\f109";}
+.icon-tablet:before{content:"\f10a";}
+.icon-mobile-phone:before{content:"\f10b";}
+.icon-circle-blank:before{content:"\f10c";}
+.icon-quote-left:before{content:"\f10d";}
+.icon-quote-right:before{content:"\f10e";}
+.icon-spinner:before{content:"\f110";}
+.icon-circle:before{content:"\f111";}
+.icon-mail-reply:before,.icon-reply:before{content:"\f112";}
+.icon-github-alt:before{content:"\f113";}
+.icon-folder-close-alt:before{content:"\f114";}
+.icon-folder-open-alt:before{content:"\f115";}
+.icon-expand-alt:before{content:"\f116";}
+.icon-collapse-alt:before{content:"\f117";}
+.icon-smile:before{content:"\f118";}
+.icon-frown:before{content:"\f119";}
+.icon-meh:before{content:"\f11a";}
+.icon-gamepad:before{content:"\f11b";}
+.icon-keyboard:before{content:"\f11c";}
+.icon-flag-alt:before{content:"\f11d";}
+.icon-flag-checkered:before{content:"\f11e";}
+.icon-terminal:before{content:"\f120";}
+.icon-code:before{content:"\f121";}
+.icon-reply-all:before{content:"\f122";}
+.icon-mail-reply-all:before{content:"\f122";}
+.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";}
+.icon-location-arrow:before{content:"\f124";}
+.icon-crop:before{content:"\f125";}
+.icon-code-fork:before{content:"\f126";}
+.icon-unlink:before{content:"\f127";}
+.icon-question:before{content:"\f128";}
+.icon-info:before{content:"\f129";}
+.icon-exclamation:before{content:"\f12a";}
+.icon-superscript:before{content:"\f12b";}
+.icon-subscript:before{content:"\f12c";}
+.icon-eraser:before{content:"\f12d";}
+.icon-puzzle-piece:before{content:"\f12e";}
+.icon-microphone:before{content:"\f130";}
+.icon-microphone-off:before{content:"\f131";}
+.icon-shield:before{content:"\f132";}
+.icon-calendar-empty:before{content:"\f133";}
+.icon-fire-extinguisher:before{content:"\f134";}
+.icon-rocket:before{content:"\f135";}
+.icon-maxcdn:before{content:"\f136";}
+.icon-chevron-sign-left:before{content:"\f137";}
+.icon-chevron-sign-right:before{content:"\f138";}
+.icon-chevron-sign-up:before{content:"\f139";}
+.icon-chevron-sign-down:before{content:"\f13a";}
+.icon-html5:before{content:"\f13b";}
+.icon-css3:before{content:"\f13c";}
+.icon-anchor:before{content:"\f13d";}
+.icon-unlock-alt:before{content:"\f13e";}
+.icon-bullseye:before{content:"\f140";}
+.icon-ellipsis-horizontal:before{content:"\f141";}
+.icon-ellipsis-vertical:before{content:"\f142";}
+.icon-rss-sign:before{content:"\f143";}
+.icon-play-sign:before{content:"\f144";}
+.icon-ticket:before{content:"\f145";}
+.icon-minus-sign-alt:before{content:"\f146";}
+.icon-check-minus:before{content:"\f147";}
+.icon-level-up:before{content:"\f148";}
+.icon-level-down:before{content:"\f149";}
+.icon-check-sign:before{content:"\f14a";}
+.icon-edit-sign:before{content:"\f14b";}
+.icon-external-link-sign:before{content:"\f14c";}
+.icon-share-sign:before{content:"\f14d";}
+.icon-compass:before{content:"\f14e";}
+.icon-collapse:before{content:"\f150";}
+.icon-collapse-top:before{content:"\f151";}
+.icon-expand:before{content:"\f152";}
+.icon-euro:before,.icon-eur:before{content:"\f153";}
+.icon-gbp:before{content:"\f154";}
+.icon-dollar:before,.icon-usd:before{content:"\f155";}
+.icon-rupee:before,.icon-inr:before{content:"\f156";}
+.icon-yen:before,.icon-jpy:before{content:"\f157";}
+.icon-renminbi:before,.icon-cny:before{content:"\f158";}
+.icon-won:before,.icon-krw:before{content:"\f159";}
+.icon-bitcoin:before,.icon-btc:before{content:"\f15a";}
+.icon-file:before{content:"\f15b";}
+.icon-file-text:before{content:"\f15c";}
+.icon-sort-by-alphabet:before{content:"\f15d";}
+.icon-sort-by-alphabet-alt:before{content:"\f15e";}
+.icon-sort-by-attributes:before{content:"\f160";}
+.icon-sort-by-attributes-alt:before{content:"\f161";}
+.icon-sort-by-order:before{content:"\f162";}
+.icon-sort-by-order-alt:before{content:"\f163";}
+.icon-thumbs-up:before{content:"\f164";}
+.icon-thumbs-down:before{content:"\f165";}
+.icon-youtube-sign:before{content:"\f166";}
+.icon-youtube:before{content:"\f167";}
+.icon-xing:before{content:"\f168";}
+.icon-xing-sign:before{content:"\f169";}
+.icon-youtube-play:before{content:"\f16a";}
+.icon-dropbox:before{content:"\f16b";}
+.icon-stackexchange:before{content:"\f16c";}
+.icon-instagram:before{content:"\f16d";}
+.icon-flickr:before{content:"\f16e";}
+.icon-adn:before{content:"\f170";}
+.icon-bitbucket:before{content:"\f171";}
+.icon-bitbucket-sign:before{content:"\f172";}
+.icon-tumblr:before{content:"\f173";}
+.icon-tumblr-sign:before{content:"\f174";}
+.icon-long-arrow-down:before{content:"\f175";}
+.icon-long-arrow-up:before{content:"\f176";}
+.icon-long-arrow-left:before{content:"\f177";}
+.icon-long-arrow-right:before{content:"\f178";}
+.icon-apple:before{content:"\f179";}
+.icon-windows:before{content:"\f17a";}
+.icon-android:before{content:"\f17b";}
+.icon-linux:before{content:"\f17c";}
+.icon-dribbble:before{content:"\f17d";}
+.icon-skype:before{content:"\f17e";}
+.icon-foursquare:before{content:"\f180";}
+.icon-trello:before{content:"\f181";}
+.icon-female:before{content:"\f182";}
+.icon-male:before{content:"\f183";}
+.icon-gittip:before{content:"\f184";}
+.icon-sun:before{content:"\f185";}
+.icon-moon:before{content:"\f186";}
+.icon-archive:before{content:"\f187";}
+.icon-bug:before{content:"\f188";}
+.icon-vk:before{content:"\f189";}
+.icon-weibo:before{content:"\f18a";}
+.icon-renren:before{content:"\f18b";}
diff --git a/docs/css/jquery.iviewer.css b/docs/css/jquery.iviewer.css
new file mode 100644
index 0000000..11f5f09
--- /dev/null
+++ b/docs/css/jquery.iviewer.css
@@ -0,0 +1,65 @@
+.viewer {
+ -ms-touch-action: none;
+}
+
+.iviewer_common {
+ position:absolute;
+ bottom:10px;
+ border: 1px solid #000;
+ height: 28px;
+ z-index: 5000;
+}
+
+.iviewer_cursor {
+ cursor: url(../images/iviewer/hand.cur) 6 8, pointer;
+}
+
+.iviewer_drag_cursor {
+ cursor: url(../images/iviewer/grab.cur) 6 8, pointer;
+}
+
+.iviewer_button {
+ width: 28px;
+ cursor: pointer;
+ background-position: center center;
+ background-repeat: no-repeat;
+}
+
+.iviewer_zoom_in {
+ left: 20px;
+ background: url(../images/iviewer/iviewer.zoom_in.png);
+}
+
+.iviewer_zoom_out {
+ left: 55px;
+ background: url(../images/iviewer/iviewer.zoom_out.png);
+}
+
+.iviewer_zoom_zero {
+ left: 90px;
+ background: url(../images/iviewer/iviewer.zoom_zero.png);
+}
+
+.iviewer_zoom_fit {
+ left: 125px;
+ background: url(../images/iviewer/iviewer.zoom_fit.png);
+}
+
+.iviewer_zoom_status {
+ left: 160px;
+ font: 1em/28px Sans;
+ color: #000;
+ background-color: #fff;
+ text-align: center;
+ width: 60px;
+}
+
+.iviewer_rotate_left {
+ left: 227px;
+ background: #fff url(../images/iviewer/iviewer.rotate_left.png) center center no-repeat;
+}
+
+.iviewer_rotate_right {
+ left: 262px;
+ background: #fff url(../images/iviewer/iviewer.rotate_right.png) center center no-repeat;
+}
diff --git a/docs/css/phpdocumentor-clean-icons/Read Me.txt b/docs/css/phpdocumentor-clean-icons/Read Me.txt
new file mode 100644
index 0000000..9d2b9e5
--- /dev/null
+++ b/docs/css/phpdocumentor-clean-icons/Read Me.txt
@@ -0,0 +1,3 @@
+To modify your generated font, use the *dev.svg* file, located in the *fonts* folder in this package. You can import this dev.svg file to the IcoMoon app. All the tags (class names) and the Unicode points of your glyphs are saved in this file.
+
+See the documentation for more info on how to use this package: http://icomoon.io/#docs/font-face
\ No newline at end of file
diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg
new file mode 100644
index 0000000..8b543c1
--- /dev/null
+++ b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg
@@ -0,0 +1,17 @@
+
+
+
+
+This is a custom SVG font generated by IcoMoon.
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot
new file mode 100644
index 0000000..ef43f26
Binary files /dev/null and b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot differ
diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg
new file mode 100644
index 0000000..cf0548b
--- /dev/null
+++ b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg
@@ -0,0 +1,17 @@
+
+
+
+
+This is a custom SVG font generated by IcoMoon.
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf
new file mode 100644
index 0000000..1937c7a
Binary files /dev/null and b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf differ
diff --git a/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff
new file mode 100644
index 0000000..32fe30d
Binary files /dev/null and b/docs/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff differ
diff --git a/docs/css/phpdocumentor-clean-icons/lte-ie7.js b/docs/css/phpdocumentor-clean-icons/lte-ie7.js
new file mode 100644
index 0000000..881c16e
--- /dev/null
+++ b/docs/css/phpdocumentor-clean-icons/lte-ie7.js
@@ -0,0 +1,30 @@
+/* Load this script using conditional IE comments if you need to support IE 7 and IE 6. */
+
+window.onload = function() {
+ function addIcon(el, entity) {
+ var html = el.innerHTML;
+ el.innerHTML = '' + entity + ' ' + html;
+ }
+ var icons = {
+ 'icon-trait' : '',
+ 'icon-interface' : '',
+ 'icon-class' : ''
+ },
+ els = document.getElementsByTagName('*'),
+ i, attr, html, c, el;
+ for (i = 0; ; i += 1) {
+ el = els[i];
+ if(!el) {
+ break;
+ }
+ attr = el.getAttribute('data-icon');
+ if (attr) {
+ addIcon(el, attr);
+ }
+ c = el.className;
+ c = c.match(/icon-[^\s'"]+/);
+ if (c && icons[c[0]]) {
+ addIcon(el, icons[c[0]]);
+ }
+ }
+};
\ No newline at end of file
diff --git a/docs/css/phpdocumentor-clean-icons/style.css b/docs/css/phpdocumentor-clean-icons/style.css
new file mode 100644
index 0000000..f069ec1
--- /dev/null
+++ b/docs/css/phpdocumentor-clean-icons/style.css
@@ -0,0 +1,48 @@
+@font-face {
+ font-family: 'phpdocumentor-clean-icons';
+ src:url('fonts/phpdocumentor-clean-icons.eot');
+ src:url('fonts/phpdocumentor-clean-icons.eot?#iefix') format('embedded-opentype'),
+ url('fonts/phpdocumentor-clean-icons.woff') format('woff'),
+ url('fonts/phpdocumentor-clean-icons.ttf') format('truetype'),
+ url('fonts/phpdocumentor-clean-icons.svg#phpdocumentor-clean-icons') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
+/* Use the following CSS code if you want to use data attributes for inserting your icons */
+[data-icon]:before {
+ font-family: 'phpdocumentor-clean-icons';
+ content: attr(data-icon);
+ speak: none;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+}
+
+/* Use the following CSS code if you want to have a class per icon */
+/*
+Instead of a list of all class selectors,
+you can use the generic selector below, but it's slower:
+[class*="icon-"] {
+*/
+.icon-trait, .icon-interface, .icon-class {
+ font-family: 'phpdocumentor-clean-icons';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+}
+.icon-trait:before {
+ content: "\e000";
+}
+.icon-interface:before {
+ content: "\e001";
+}
+.icon-class:before {
+ content: "\e002";
+}
diff --git a/docs/css/prism.css b/docs/css/prism.css
new file mode 100644
index 0000000..17876af
--- /dev/null
+++ b/docs/css/prism.css
@@ -0,0 +1,204 @@
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+ color: black;
+ text-shadow: 0 1px white;
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
+ direction: ltr;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+::-moz-selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+::selection {
+ text-shadow: none;
+ background: #b3d4fc;
+}
+
+@media print {
+ code[class*="language-"],
+ pre[class*="language-"] {
+ text-shadow: none;
+ }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ margin: .5em 0;
+ overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+ background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+ padding: .1em;
+ border-radius: .3em;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: slategray;
+}
+
+.token.punctuation {
+ color: #999;
+}
+
+.namespace {
+ opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number {
+ color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string {
+ color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+ color: #a67f59;
+ background: hsla(0,0%,100%,.5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+ color: #07a;
+}
+
+
+.token.regex,
+.token.important {
+ color: #e90;
+}
+
+.token.important {
+ font-weight: bold;
+}
+
+.token.entity {
+ cursor: help;
+}
+pre[data-line] {
+ position: relative;
+ padding: 1em 0 1em 3em;
+}
+
+.line-highlight {
+ position: absolute;
+ left: 0;
+ right: 0;
+ padding: inherit 0;
+ margin-top: 1em; /* Same as .prism’s padding-top */
+
+ background: hsla(24, 20%, 50%,.08);
+ background: -moz-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+ background: -webkit-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+ background: -o-linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+ background: linear-gradient(left, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+
+ pointer-events: none;
+
+ line-height: inherit;
+ white-space: pre;
+}
+
+ .line-highlight:before,
+ .line-highlight[data-end]:after {
+ content: attr(data-start);
+ position: absolute;
+ top: .4em;
+ left: .6em;
+ min-width: 1em;
+ padding: 0 .5em;
+ background-color: hsla(24, 20%, 50%,.4);
+ color: hsl(24, 20%, 95%);
+ font: bold 65%/1.5 sans-serif;
+ text-align: center;
+ vertical-align: .3em;
+ border-radius: 999px;
+ text-shadow: none;
+ box-shadow: 0 1px white;
+ }
+
+ .line-highlight[data-end]:after {
+ content: attr(data-end);
+ top: auto;
+ bottom: .4em;
+ }
+pre.line-numbers {
+ position: relative;
+ padding-left: 3.8em;
+ counter-reset: linenumber;
+}
+
+pre.line-numbers > code {
+ position: relative;
+}
+
+.line-numbers .line-numbers-rows {
+ position: absolute;
+ pointer-events: none;
+ top: 0;
+ font-size: 100%;
+ left: -3.8em;
+ width: 3em; /* works for line-numbers below 1000 lines */
+ letter-spacing: -1px;
+ border-right: 1px solid #999;
+
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+
+}
+
+ .line-numbers-rows > span {
+ pointer-events: none;
+ display: block;
+ counter-increment: linenumber;
+ }
+
+ .line-numbers-rows > span:before {
+ content: counter(linenumber);
+ color: #999;
+ display: block;
+ padding-right: 0.8em;
+ text-align: right;
+ }
diff --git a/docs/css/template.css b/docs/css/template.css
new file mode 100644
index 0000000..9edf5ee
--- /dev/null
+++ b/docs/css/template.css
@@ -0,0 +1,429 @@
+@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro);
+@import url('phpdocumentor-clean-icons/style.css');
+
+body {
+ padding-top: 40px;
+ background-color: #333333;
+}
+
+a {
+ color: #6495ed;
+}
+a.anchor {
+ height: 40px;
+ margin-top: -40px;
+ display: block;
+}
+
+h1, h2, h3, h4, h5, h6, .brand {
+ font-family: 'Source Sans Pro', sans-serif;
+ font-weight: normal;
+ letter-spacing: 0.05em;
+}
+
+h2, h3, .detailsbar h1 {
+ overflow: hidden;
+ white-space: nowrap;
+ margin: 30px 0 20px 0;
+}
+
+h2:after, h3:after, .detailsbar h1:after {
+ content: '';
+ display: inline-block;
+ vertical-align: middle;
+ width: 100%;
+ height: 2px;
+ margin-left: 1em;
+ background: silver;
+}
+
+h3 {
+ margin: 10px 0 20px 0;
+}
+
+h4 {
+ margin: 20px 0 10px 0;
+ color: gray;
+ font-size: 18.5px;
+}
+
+h3.public, h3.protected, h3.private {
+ padding-left: 10px;
+ text-overflow: ellipsis;
+}
+
+.table tr:first-of-type th, .table tr:first-of-type td {
+ border-top: none;
+}
+.detailsbar {
+ color: #eeeeee;
+ background-color: #333333;
+ font-size: 0.9em;
+ overflow: hidden;
+ border-left: 2px solid gray;
+}
+
+.detailsbar h1 {
+ font-size: 1.5em;
+ margin-bottom: 20px;
+ margin-top: 0;
+}
+
+.detailsbar h2 {
+ font-size: 1.2em;
+ margin: 0;
+ padding: 0;
+}
+
+.detailsbar h1:after {
+ background: gray;
+}
+.detailsbar h2:after, .detailsbar h3:after {
+ background: transparent;
+}
+
+.detailsbar dt {
+ font-variant: small-caps;
+ text-transform: lowercase;
+ font-size: 1.1em;
+ letter-spacing: 0.1em;
+ color: silver;
+}
+
+.hierarchy div:nth-of-type(2) { margin-left: 11px; }
+.hierarchy div:nth-of-type(3) { margin-left: 22px; }
+.hierarchy div:nth-of-type(4) { margin-left: 33px; }
+.hierarchy div:nth-of-type(5) { margin-left: 44px; }
+.hierarchy div:nth-of-type(6) { margin-left: 55px; }
+.hierarchy div:nth-of-type(7) { margin-left: 66px; }
+.hierarchy div:nth-of-type(8) { margin-left: 77px; }
+.hierarchy div:nth-of-type(9) { margin-left: 88px; }
+.hierarchy div:before {
+ content: "\f0da";
+ font-family: FontAwesome;
+ margin-right: 5px;
+}
+
+.row-fluid {
+ background-color: white;
+ overflow: hidden;
+}
+
+footer.row-fluid, footer.row-fluid * {
+ background-color: #333333;
+ color: white;
+}
+
+footer.row-fluid {
+ border-top: 2px dashed #555;
+ margin-top: 2px;
+}
+
+.footer-sections .span4 {
+ border: 2px solid #555;
+ text-align: center;
+ border-radius: 10px;
+ margin-top: 70px;
+ margin-bottom: 20px;
+ background: #373737;
+}
+
+.footer-sections .span4 h1 {
+ background: transparent;
+ margin-top: -30px;
+ margin-bottom: 20px;
+ font-size: 5em;
+}
+
+.footer-sections .span4 h1 * {
+ background: transparent;
+}
+
+.footer-sections .span4 div {
+ border-bottom-right-radius: 6px;
+ border-bottom-left-radius: 6px;
+ padding: 10px;
+ min-height: 40px;
+}
+.footer-sections .span4 div, .footer-sections .span4 div * {
+ background-color: #555;
+}
+.footer-sections .span4 ul {
+ text-align: left;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.content {
+ background-color: white;
+ padding-right: 20px;
+}
+
+.content nav {
+ text-align: center;
+ border-bottom: 1px solid silver;
+ margin: 5px 0 20px 0;
+ padding-bottom: 5px;
+}
+
+.content > h1 {
+ padding-bottom: 15px;
+}
+
+.content > h1 small {
+ display: block;
+ padding-bottom: 8px;
+ font-size: 0.6em;
+}
+
+.deprecated {
+ text-decoration: line-through;
+}
+
+.method {
+ margin-bottom: 20px;
+}
+
+.method .signature .argument {
+ color: maroon;
+ font-weight: bold;
+}
+
+.class #summary section.row-fluid {
+ overflow: hidden
+}
+
+.class #summary .heading {
+ font-weight: bold;
+ text-align: center;
+}
+
+.class #summary section .span4 {
+ padding: 3px;
+ overflow: hidden;
+ margin-bottom: -9999px;
+ padding-bottom: 9999px;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ border-left: 5px solid transparent;
+}
+
+.class #summary section.public .span4:first-of-type:before,
+.class #summary section.public .span6:first-of-type:before,
+h3.public:before {
+ font-family: FontAwesome;
+ content: "\f046";
+ color: green;
+ display: inline-block;
+ width: 1.2em;
+}
+
+.class #summary section .span4:first-of-type,
+.class #summary section .span6:first-of-type {
+ padding-left: 21px;
+}
+.class #summary section .span4:first-of-type:before,
+.class #summary section .span6:first-of-type:before {
+ margin-left: -21px;
+}
+.class #summary section.protected .span4:first-of-type:before,
+.class #summary section.protected .span6:first-of-type:before,
+h3.protected:before {
+ font-family: FontAwesome;
+ content: "\f132";
+ color: orange;
+ display: inline-block;
+ width: 1.2em;
+}
+
+.class #summary section.private .span4:first-of-type:before,
+.class #summary section.private .span6:first-of-type:before,
+h3.private:before {
+ font-family: FontAwesome;
+ content: "\f023";
+ color: red;
+ display: inline-block;
+ width: 1.2em;
+}
+
+.class #summary section em {
+ font-size: 0.9em;
+ color: silver;
+}
+.class #summary .inherited {
+ color: gray;
+ font-style: italic;
+}
+
+.accordion-group {
+ border: none;
+}
+
+.accordion {
+ margin-bottom: 0;
+}
+
+.accordion a:hover {
+ text-decoration: none;
+ background: #333333;
+ color: #eeeeee;
+}
+
+.accordion-heading .accordion-toggle:before {
+ content: "\f078";
+ font-family: FontAwesome;
+ margin-right: 5px;
+}
+
+.accordion-heading .accordion-toggle.collapsed:before {
+ content: "\f054";
+}
+.accordion-heading .accordion-toggle {
+ float: left;
+ width: 16px;
+ height: 16px;
+ padding: 4px 2px 4px 12px;
+}
+.accordion-heading a {
+ display: block;
+ padding: 4px 12px;
+}
+
+.accordion-inner a {
+ display: block;
+ padding: 4px 12px;
+}
+
+.accordion-inner > ul a:before {
+ font-family: 'phpdocumentor-clean-icons';
+ content: "\e001";
+ margin-right: 5px;
+}
+
+.accordion-inner li.class a:before {
+ content: "\e002";
+}
+
+.accordion-inner li.interface a:before {
+ content: "\e001";
+}
+
+.accordion-inner li.trait a:before {
+ content: "\e000";
+}
+
+.accordion-inner {
+ padding: 4px 0 4px 12px;
+}
+.accordion-inner ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.row-fluid .span2 {
+ width: 16.5%;
+}
+
+body .modal {
+ width: 90%; /* desired relative width */
+ left: 5%; /* (100%-width)/2 */
+ /* place center */
+ margin-left:auto;
+ margin-right:auto;
+}
+
+.side-nav.nav-list li a {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+@media (min-width: 767px) {
+ .sidebar {
+ position: fixed;
+ top: 40px;
+ bottom: 0;
+ background-color: #f3f3f3;
+ left: 0;
+ border-right: 1px solid #e9e9e9;
+ overflow-y: scroll;
+ overflow-x: hidden;
+ padding-top: 10px;
+ }
+
+ .sidebar::-webkit-scrollbar {
+ width: 10px;
+ }
+
+ .sidebar::-webkit-scrollbar-thumb {
+ background: #cccccc;
+ background-clip: padding-box;
+ border: 3px solid #f3f3f3;
+ border-radius: 5px;
+ }
+
+ .sidebar::-webkit-scrollbar-button {
+ display: none;
+ }
+
+ .sidebar::-webkit-scrollbar-track {
+ background: #f3f3f3;
+ }
+}
+
+@media (max-width: 979px) {
+ body {
+ padding-top: 0;
+ }
+}
+
+@media (max-width: 767px) {
+ .class #summary .heading {
+ display: none;
+ }
+
+ .detailsbar h1 {
+ display: none;
+ }
+
+ body {
+ background-color: white;
+ }
+
+ footer.row-fluid, footer.row-fluid * {
+ background-color: white;
+ }
+
+ .footer-sections .span4 h1 {
+ color: #ccccd9;
+ margin-top: 0;
+ }
+
+ .detailsbar {
+ background-color: white;
+ color: #333;
+ border: none;
+ }
+
+ .row-fluid .span2 {
+ width: 100%;
+ }
+}
+
+@media (min-width: 767px) {
+ .detailsbar {
+ min-height: 100%;
+ margin-bottom: -99999px;
+ padding-bottom: 99999px;
+ padding-left: 20px;
+ padding-top: 10px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .row-fluid .span2 {
+ width: 16.5%;
+ }
+}
diff --git a/docs/files/Admin.Settings.SettingsServiceProvider.html b/docs/files/Admin.Settings.SettingsServiceProvider.html
new file mode 100644
index 0000000..7833c62
--- /dev/null
+++ b/docs/files/Admin.Settings.SettingsServiceProvider.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Admin/Settings SettingsServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Admin/Settings/SettingsServiceProvider.php.txt b/docs/files/Admin/Settings/SettingsServiceProvider.php.txt
new file mode 100644
index 0000000..6cdaa2b
--- /dev/null
+++ b/docs/files/Admin/Settings/SettingsServiceProvider.php.txt
@@ -0,0 +1,53 @@
+plugin->loader->addFilter('mb_settings_pages', $this, 'registerSettingsPage', 10, 1);
+ $this->plugin->loader->addFilter('rwmb_meta_boxes', $this, 'registerSettings', 10, 1);
+ }
+
+ /**
+ * @param $rwmbSettingsPages
+ *
+ * @return array
+ */
+ public function registerSettingsPage($rwmbSettingsPages)
+ {
+
+ $settingsPages = $this->plugin->config->get('settings_pages');
+
+ return array_merge($rwmbSettingsPages, $settingsPages);
+ }
+
+ /**
+ * Register metaboxes for settings page
+ *
+ * @param $rwmbMetaboxes
+ *
+ * @return array
+ */
+ public function registerSettings($rwmbMetaboxes)
+ {
+ $configMetaboxes = $this->plugin->config->get('settings');
+ $metaboxes = [];
+
+ foreach ( $configMetaboxes as $metabox ) {
+ $metaboxes[] = $this->processMetabox($metabox);
+ }
+
+ return array_merge($rwmbMetaboxes, apply_filters("owc/openpub/base/before-register-settings", $metaboxes));
+ }
+}
+
diff --git a/docs/files/ElasticPress.ElasticPress.html b/docs/files/ElasticPress.ElasticPress.html
new file mode 100644
index 0000000..78405f8
--- /dev/null
+++ b/docs/files/ElasticPress.ElasticPress.html
@@ -0,0 +1,698 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ElasticPress ElasticPress.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+ ES_SHIELD
+ ES_SHIELD
+
+
+
+
+
+
+
+
+
+
+
+ EP_HOST
+ EP_HOST
+
+
+
+
+
+
+
+
+
+
+
+ EP_INDEX_PREFIX
+ EP_INDEX_PREFIX
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/ElasticPress.ElasticPressServiceProvider.html b/docs/files/ElasticPress.ElasticPressServiceProvider.html
new file mode 100644
index 0000000..8629349
--- /dev/null
+++ b/docs/files/ElasticPress.ElasticPressServiceProvider.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ElasticPress ElasticPressServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/ElasticPress/ElasticPress.php.txt b/docs/files/ElasticPress/ElasticPress.php.txt
new file mode 100644
index 0000000..a244335
--- /dev/null
+++ b/docs/files/ElasticPress/ElasticPress.php.txt
@@ -0,0 +1,325 @@
+config = $config;
+ $this->item = $item;
+ }
+
+ /**
+ * Initialize ElasticPress integration.
+ */
+ public function init()
+ {
+ $this->setFilters();
+ }
+
+ public function setFilters()
+ {
+ /**
+ * Default settings
+ */
+ add_filter('ep_index_name', [$this, 'setIndexNameByEnvironment'], 10, 2);
+ add_filter('ep_pre_request_host', [$this, 'setRequestHost'], 10, 4);
+ add_filter('ep_pre_request_url', [$this, 'setRequestUrl'], 10, 5);
+
+ /**
+ * Search settings
+ */
+ add_filter('ep_search_fields', [$this, 'setSearchFields'], 10, 2);
+ add_filter('ep_search_args', [$this, 'setSearchArgs'], 10, 3);
+ add_filter('formattedArgs', [$this, 'setFormattedArgs'], 11, 2);
+ add_filter('epwr_decay', [$this, 'setDecay'], 10, 3);
+ add_filter('epwr_offset', [$this, 'setOffset'], 10, 3);
+ add_filter('ep_indexable_post_types', [$this, 'setIndexables'], 11, 1);
+ add_filter('ep_indexable_post_status', [$this, 'setStatuses']);
+ add_filter('ep_analyzer_language', [$this, 'setLanguage'], 10, 2);
+ add_filter('ep_post_sync_args_post_prepare_meta', [$this, 'setPostSyncArgs'], 10, 2);
+ add_filter('ep_index_posts_args', [$this, 'setIndexPostsArgs'], 10, 1);
+ }
+
+ /**
+ * Set decay of post.
+ *
+ * @param int $decay
+ * @param array $formatted_args
+ * @param array $args
+ *
+ * @return int
+ */
+ public function setDecay($decay, $formatted_args, $args)
+ {
+ return $this->config->get('elasticpress.expire.decay');
+ }
+
+ /**
+ * Set offset of the decay of post.
+ *
+ * @param string $decay
+ * @param array $formatted_args
+ * @param array $args
+ *
+ * @return string
+ */
+ public function setOffset($decay, $formatted_args, $args)
+ {
+ return $this->config->get('elasticpress.expire.offset');
+ }
+
+ /**
+ * Weight more recent content in searches.
+ *
+ * @param array $formattedArgs
+ * @param array $args
+ *
+ * @return array
+ */
+ public function setFormattedArgs($formattedArgs, $args)
+ {
+
+ // Move the existing query.
+ $existing_query = $formattedArgs['query'];
+ unset($formattedArgs['query']);
+ $formattedArgs['query']['function_score']['query'] = $existing_query;
+
+ /**
+ * Add filter matches that will weight the results.
+ *
+ * Use any combination of filters here, any matched filter will adjust the weighted results
+ * according to the scoring settings set below. This example pseudo code below matches a custom term with the current or a parent item.
+ */
+ $formattedArgs['query']['function_score']['functions'] = [
+
+ // The current item gets a weight of 3.
+ [
+ "filter" => [
+ "match" => [
+ "post_title" => get_query_var('s'),
+ ],
+ ],
+ "weight" => $this->config->get('elasticpress.search.weight')
+ ]
+ ];
+
+ // Specify how the computed scores are combined.
+ $formattedArgs['query']['function_score']["score_mode"] = "sum";
+ $formattedArgs['query']['function_score']["boost_mode"] = "multiply";
+
+ return $formattedArgs;
+ }
+
+ /**
+ * Sets the filter to modify the posttypes which gets indexed in the ElasticSearch instance
+ */
+ public function setIndexables($postTypes)
+ {
+ return $this->config->get('elasticpress.indexables');
+ }
+
+ /**
+ * Sets additional meta_query information to further determine which posts gets indexed in the ElasticSearch instance
+ */
+ public function setIndexPostsArgs($args)
+ {
+ return $args;
+ }
+
+ /**
+ * Filters the post statuses for indexation by elasticPress
+ */
+ public function setStatuses($statuses)
+ {
+ return $this->config->get('elasticpress.postStatus');
+ }
+
+ /**
+ * Set the language for the ES instance.
+ *
+ * @var string $language
+ *
+ * @return string
+ */
+ public function setLanguage($language, $analyzer)
+ {
+ return $this->config->get('elasticpress.language');
+ }
+
+ /**
+ * Set the args of the post which is synced to the instance.
+ */
+ public function setPostSyncArgs($item, $postID)
+ {
+ return $this->transform($item, $postID);
+ }
+
+ /**
+ * Transforms the postArgs to a filterable object.
+ *
+ * @param $item
+ * @param $postID
+ *
+ * @return array
+ * @throws \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+ * @throws \ReflectionException
+ */
+ protected function transform($item, $postID): array
+ {
+ $item = $this->item
+ ->query(apply_filters('owc/openpub/rest-api/items/query/single', []))
+ ->find($postID);
+
+ $item['connected'] = $item['connected'];
+
+ $item['post_author'] = isset($item['post_author']) ? $item['post_author'] : [];
+
+ if ( apply_filters('owc/openpub/base/elasticpress/postargs/remote-author', true, $postID) ) {
+ $item['post_author']['raw'] = $item['post_author']['display_name'] = $item['post_author']['login'] = '';
+ }
+
+ return $item;
+ }
+
+ /**
+ * Define all the necessary settings.
+ */
+ public function setSettings()
+ {
+ $settings = $this->getSettings();
+
+ if ( isset($settings['_owc_setting_elasticsearch_url']) && ( ! defined('EP_HOST') ) ) {
+
+ if ( isset($settings['_owc_setting_elasticsearch_shield']) && ( ! defined('ES_SHIELD') ) ) {
+ define('ES_SHIELD', trim($settings['_owc_setting_elasticsearch_shield']));
+ }
+
+ $url = parse_url($settings['_owc_setting_elasticsearch_url']);
+ $build = [];
+ $build[] = $url['scheme'];
+ $build[] = '://';
+ $build[] = ! empty(ES_SHIELD) ? sprintf('%s@', ES_SHIELD) : '';
+ $build[] = $url['host'];
+ $build[] = ! empty($url['port']) ? sprintf(':%s', $url['port']) : '';
+ $build[] = ! empty($url['path']) ? sprintf('/%s', ltrim($url['path'], '/')) : '/';
+
+ define('EP_HOST', implode('', ( array_filter($build) )));
+
+ update_option('ep_host', EP_HOST);
+ }
+
+ if ( isset($settings['_owc_setting_elasticsearch_prefix']) && ( ! defined('EP_INDEX_PREFIX') ) ) {
+ define('EP_INDEX_PREFIX', $settings['_owc_setting_elasticsearch_prefix']);
+ }
+ }
+
+ /**
+ * Sets the uniformed indexName for ElasticSearch, based on prefix, environment variable and site ID.
+ *
+ * @param $indexName
+ * @param $siteID
+ *
+ * @return string
+ */
+ public function setIndexNameByEnvironment($indexName, $siteID)
+ {
+ $prefix = 'owc-openpub';
+
+ if ( defined('EP_INDEX_PREFIX') && EP_INDEX_PREFIX ) {
+ $prefix = trim(EP_INDEX_PREFIX) . $prefix;
+ }
+
+ $buildIndexName = array_filter([
+ $prefix,
+ $siteID,
+ $this->getEnvironmentVariable()
+ ]);
+
+ $indexName = implode('--', $buildIndexName);
+
+ return $indexName;
+ }
+
+ /**
+ * @return array|false|string
+ */
+ protected function getEnvironmentVariable()
+ {
+ return getenv('environment');
+ }
+
+ /**
+ * @return array
+ */
+ public function getSettings()
+ {
+ return get_option('_owc_openpub_base_settings', []);
+ }
+
+ public function setSearchArgs($args, $scope, $query_args)
+ {
+ return $args;
+ }
+
+ /**
+ * @param $searchFields
+ * @param $args
+ *
+ * @return array
+ */
+ public function setSearchFields($searchFields, $args)
+ {
+
+ $searchFields[] = 'meta';
+ $searchFields[] = 'connected';
+
+ return $searchFields;
+ }
+
+ /**
+ * @param $host
+ * @param $failures
+ * @param $path
+ * @param $args
+ *
+ * @return mixed
+ */
+ public function setRequestHost($host, $failures, $path, $args)
+ {
+ return $host;
+ }
+
+ /**
+ * @param $url
+ * @param $failures
+ * @param $host
+ * @param $path
+ * @param $args
+ *
+ * @return mixed
+ */
+ public function setRequestUrl($url, $failures, $host, $path, $args)
+ {
+ return $url;
+ }
+}
+
diff --git a/docs/files/ElasticPress/ElasticPressServiceProvider.php.txt b/docs/files/ElasticPress/ElasticPressServiceProvider.php.txt
new file mode 100644
index 0000000..6d08c61
--- /dev/null
+++ b/docs/files/ElasticPress/ElasticPressServiceProvider.php.txt
@@ -0,0 +1,36 @@
+plugin->config, new Item);
+ $this->plugin->loader->addAction('init', $elasticPress, 'setSettings', 10, 1);
+ $this->plugin->loader->addAction('init', $elasticPress, 'init', 10, 1);
+ }
+
+ /**
+ * Register the service provider
+ * @throws Exception
+ */
+ public function boot()
+ {
+
+ }
+}
+
diff --git a/docs/files/Exceptions.PropertyNotExistsException.html b/docs/files/Exceptions.PropertyNotExistsException.html
new file mode 100644
index 0000000..3cd3e75
--- /dev/null
+++ b/docs/files/Exceptions.PropertyNotExistsException.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions PropertyNotExistsException.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Exceptions/PropertyNotExistsException.php.txt b/docs/files/Exceptions/PropertyNotExistsException.php.txt
new file mode 100644
index 0000000..48366fc
--- /dev/null
+++ b/docs/files/Exceptions/PropertyNotExistsException.php.txt
@@ -0,0 +1,10 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Foundation Config.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Foundation.DependencyChecker.html b/docs/files/Foundation.DependencyChecker.html
new file mode 100644
index 0000000..6faeb68
--- /dev/null
+++ b/docs/files/Foundation.DependencyChecker.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Foundation DependencyChecker.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Foundation.Hooks.html b/docs/files/Foundation.Hooks.html
new file mode 100644
index 0000000..dcef325
--- /dev/null
+++ b/docs/files/Foundation.Hooks.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Foundation Hooks.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Foundation.Loader.html b/docs/files/Foundation.Loader.html
new file mode 100644
index 0000000..11c2ca5
--- /dev/null
+++ b/docs/files/Foundation.Loader.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Foundation Loader.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Foundation.Plugin.html b/docs/files/Foundation.Plugin.html
new file mode 100644
index 0000000..3f96548
--- /dev/null
+++ b/docs/files/Foundation.Plugin.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Foundation Plugin.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Foundation.ServiceProvider.html b/docs/files/Foundation.ServiceProvider.html
new file mode 100644
index 0000000..01189ee
--- /dev/null
+++ b/docs/files/Foundation.ServiceProvider.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Foundation ServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Foundation/Config.php.txt b/docs/files/Foundation/Config.php.txt
new file mode 100644
index 0000000..5506fc6
--- /dev/null
+++ b/docs/files/Foundation/Config.php.txt
@@ -0,0 +1,189 @@
+items = $items;
+ $this->path = $path;
+ }
+
+ /**
+ * Boot up the configuration repository.
+ */
+ public function boot()
+ {
+ $this->scanDirectory($this->getPath());
+ }
+
+ /**
+ * Retrieve a specific config value from the configuration repository.
+ *
+ * @param $setting
+ *
+ * @return array|mixed
+ */
+ public function get($setting)
+ {
+ if ( ! $setting) {
+ return $this->all();
+ }
+
+ $parts = explode('.', $setting);
+
+ $current = $this->items;
+
+ foreach ($parts as $part) {
+ $current = $current[$part];
+ }
+
+ return $current;
+ }
+
+ /**
+ * Set a given configuration value.
+ *
+ * @param array|string $key
+ * @param mixed $value
+ *
+ * @return void
+ */
+ public function set($key, $value = null)
+ {
+ $keys = is_array($key) ? $key : [ $key => $value ];
+
+ $tempItems = &$this->items;
+
+ foreach ($keys as $key => $value) {
+
+ if (in_array($key, $this->protectedNodes)) {
+ continue;
+ }
+
+ $parts = explode('.', $key);
+ while (count($parts) > 1) {
+
+ $part = array_shift($parts);
+ // If the key doesn't exist at this depth, we will just create an empty array
+ // to hold the next value, allowing us to create the arrays to hold final
+ // values at the correct depth. Then we'll keep digging into the array.
+ if ( ! isset($tempItems[$part]) || ! is_array($tempItems[$part])) {
+ $tempItems[$part] = [];
+ }
+ $tempItems = &$tempItems[$part];
+ }
+
+ $tempItems[array_shift($parts)] = $value;
+ }
+ }
+
+ /**
+ * Return all config values.
+ *
+ * @return array
+ */
+ public function all()
+ {
+ return $this->items;
+ }
+
+ /**
+ * Get the path where the files will be fetched from.
+ *
+ * @return string
+ */
+ public function getPath()
+ {
+ return $this->path;
+ }
+
+ /**
+ * Sets the path where the config files are fetched from.
+ *
+ * @param $path
+ */
+ public function setPath($path)
+ {
+ $this->path = $path;
+ }
+
+ /**
+ * @param array $nodes
+ */
+ public function setProtectedNodes($nodes = [])
+ {
+ $this->protectedNodes = $nodes;
+ }
+
+ /**
+ * @param $path
+ */
+ private function scanDirectory($path)
+ {
+ $files = glob($path.'/*', GLOB_NOSORT);
+
+ foreach ($files as $file) {
+
+ $fileType = filetype($file);
+
+ if ($fileType == "dir") {
+ $this->scanDirectory($file);
+ } else {
+ $name = str_replace('.php', '', basename($file));
+ $value = include $file;
+
+ // If its in the first directory just add the file.
+ if ($path == $this->path) {
+ $this->items[$name] = $value;
+ continue;
+ }
+
+ // Get the path from the starting path.
+ $path = str_replace($this->path.'/', '', $path);
+
+ // Build an array from the path.
+ $items = [];
+ $items[$name] = $value;
+ foreach (array_reverse(explode('/', $path)) as $key) {
+ $items = [ $key => $items ];
+ }
+
+ // Merge it recursively into items
+ $this->items = array_merge_recursive($this->items, $items);
+ }
+ }
+ }
+}
diff --git a/docs/files/Foundation/DependencyChecker.php.txt b/docs/files/Foundation/DependencyChecker.php.txt
new file mode 100644
index 0000000..5fe1b67
--- /dev/null
+++ b/docs/files/Foundation/DependencyChecker.php.txt
@@ -0,0 +1,140 @@
+dependencies = $dependencies;
+ }
+
+ /**
+ * Determines if the dependencies are not met.
+ *
+ * @return bool
+ */
+ public function failed(): bool
+ {
+ foreach ($this->dependencies as $dependency) {
+ switch ($dependency['type']) {
+ case 'class':
+ $this->checkClass($dependency);
+ break;
+ case 'plugin':
+ $this->checkPlugin($dependency);
+ break;
+ }
+ }
+
+ return count($this->failed) > 0;
+ }
+
+ /**
+ * Notifies the administrator which plugins need to be enabled,
+ * or which plugins have the wrong version.
+ */
+ public function notify()
+ {
+ add_action('admin_notices', function () {
+ $list = ''.__('The following plugins are required to use the OpenPub:',
+ 'openpub-base').'
';
+
+ foreach ($this->failed as $dependency) {
+ $info = isset($dependency['message']) ? ' ('.$dependency['message'].')' : '';
+ $list .= sprintf('%s%s ', $dependency['label'], $info);
+ }
+
+ $list .= ' ';
+
+ printf('', $list);
+ });
+ }
+
+ /**
+ * Marks a dependency as failed.
+ *
+ * @param array $dependency
+ * @param string $defaultMessage
+ */
+ private function markFailed(array $dependency, string $defaultMessage)
+ {
+ $this->failed[] = array_merge([
+ 'message' => $dependency['message'] ?? $defaultMessage
+ ], $dependency);
+ }
+
+ /**
+ *
+ *
+ * @param array $dependency
+ */
+ private function checkClass(array $dependency)
+ {
+ if ( ! class_exists($dependency['name'])) {
+ $this->markFailed($dependency, __('Class does not exist', 'openpub-base'));
+
+ return;
+ }
+ }
+
+ /**
+ * Check if a plugin is enabled and has the correct version.
+ *
+ * @param array $dependency
+ */
+ private function checkPlugin(array $dependency)
+ {
+ if ( ! is_plugin_active($dependency['file'])) {
+ $this->markFailed($dependency, __('Inactive', 'openpub-base'));
+
+ return;
+ }
+
+ // If there is a version lock set on the dependency...
+ if (isset($dependency['version'])) {
+ if ( ! $this->checkVersion($dependency)) {
+ $this->markFailed($dependency, __('Minimal version:', 'openpub-base').' '.$dependency['version'].' ');
+ }
+ }
+ }
+
+ /**
+ * Checks the installed version of the plugin.
+ *
+ * @param array $dependency
+ *
+ * @return bool
+ */
+ private function checkVersion(array $dependency): bool
+ {
+ $file = file_get_contents(WP_PLUGIN_DIR.'/'.$dependency['file']);
+
+ preg_match('/^(?: ?\* ?Version: ?)(.*)$/m', $file, $matches);
+ $version = isset($matches[1]) ? str_replace(' ', '', $matches[1]) : '0.0.0';
+
+ return version_compare($version, $dependency['version'], '>=');
+ }
+
+}
diff --git a/docs/files/Foundation/Hooks.php.txt b/docs/files/Foundation/Hooks.php.txt
new file mode 100644
index 0000000..fad8d15
--- /dev/null
+++ b/docs/files/Foundation/Hooks.php.txt
@@ -0,0 +1,86 @@
+actions = $this->add($this->actions, $hook, $component, $callback, $priority, $acceptedArgs);
+ }
+
+ /**
+ * Add a new filter to the collection to be registered with WordPress.
+ *
+ * @since 2.0.0
+ *
+ * @param string $hook The name of the WordPress filter that is being registered.
+ * @param object $component A reference to the instance of the object on which the filter is defined.
+ * @param string $callback The name of the function definition on the $component.
+ * @param int $priority Optional. he priority at which the function should be fired. Default is 10.
+ * @param int $acceptedArgs Optional. The number of arguments that should be passed to the $callback.
+ * Default is 1
+ */
+ public function addFilter($hook, $component, $callback, $priority = 10, $acceptedArgs = 1)
+ {
+ $this->filters = $this->add($this->filters, $hook, $component, $callback, $priority, $acceptedArgs);
+ }
+
+ /**
+ * A utility function that is used to register the actions and hooks into a single
+ * collection.
+ *
+ * @since 2.0.0
+ *
+ * @param array $hooks The collection of hooks that is being registered (that is, actions or filters).
+ * @param string $hook The name of the WordPress filter that is being registered.
+ * @param object $component A reference to the instance of the object on which the filter is defined.
+ * @param string $callback The name of the function definition on the $component.
+ * @param int $priority The priority at which the function should be fired.
+ * @param int $acceptedArgs The number of arguments that should be passed to the $callback.
+ *
+ * @return array The collection of actions and filters registered with WordPress.
+ */
+ protected function add($hooks, $hook, $component, $callback, $priority, $acceptedArgs)
+ {
+
+ $hooks[] = [
+ 'hook' => $hook,
+ 'component' => $component,
+ 'callback' => $callback,
+ 'priority' => $priority,
+ 'accepted_args' => $acceptedArgs
+ ];
+
+ return $hooks;
+
+ }
+
+ /**
+ * Register the filters and actions with WordPress.
+ *
+ * @since 2.0.0
+ */
+ public function register()
+ {
+
+ foreach ($this->filters as $hook) {
+ add_filter($hook['hook'], [ $hook['component'], $hook['callback'] ], $hook['priority'],
+ $hook['accepted_args']);
+ }
+
+ foreach ($this->actions as $hook) {
+ add_action($hook['hook'], [ $hook['component'], $hook['callback'] ], $hook['priority'],
+ $hook['accepted_args']);
+ }
+
+ }
+
+}
diff --git a/docs/files/Foundation/Plugin.php.txt b/docs/files/Foundation/Plugin.php.txt
new file mode 100644
index 0000000..351b904
--- /dev/null
+++ b/docs/files/Foundation/Plugin.php.txt
@@ -0,0 +1,204 @@
+rootPath = $rootPath;
+ load_plugin_textdomain($this->getName(), false, $this->getName() . '/languages/');
+
+ $this->loader = new Loader;
+
+ $this->config = new Config($this->rootPath . '/config');
+ $this->config->setProtectedNodes(['core']);
+ $this->config->boot();
+
+ $this->addStartUpHooks();
+ $this->addTearDownHooks();
+ }
+
+ /**
+ * Boot the plugin.
+ *
+ * @hook plugins_loaded
+ *
+ * @return bool
+ * @throws \Exception
+ */
+ public function boot(): bool
+ {
+ $dependencyChecker = new DependencyChecker($this->config->get('core.dependencies'));
+
+ if ( $dependencyChecker->failed() ) {
+ $dependencyChecker->notify();
+ deactivate_plugins(plugin_basename($this->rootPath . '/' . $this->getName() . '.php'));
+
+ return false;
+ }
+
+ // Set up service providers
+ $this->callServiceProviders('register');
+
+ if ( is_admin() ) {
+ $this->callServiceProviders('register', 'admin');
+ $this->callServiceProviders('boot', 'admin');
+ }
+
+ if ( 'cli' === php_sapi_name() ) {
+ $this->callServiceProviders('register', 'cli');
+ $this->callServiceProviders('boot', 'cli');
+ }
+
+ $this->callServiceProviders('boot');
+
+ // Register the Hook loader.
+ $this->loader->addAction('init', $this, 'filterPlugin', 4);
+ $this->loader->register();
+
+ return true;
+ }
+
+ public function filterPlugin()
+ {
+ do_action('owc/' . self::NAME . '/plugin', $this);
+ }
+
+ /**
+ * Call method on service providers.
+ *
+ * @param string $method
+ * @param string $key
+ *
+ * @throws \Exception
+ */
+ public function callServiceProviders($method, $key = '')
+ {
+ $offset = $key ? "core.providers.{$key}" : 'core.providers';
+ $services = $this->config->get($offset);
+
+ foreach ( $services as $service ) {
+ if ( is_array($service) ) {
+ continue;
+ }
+
+ $service = new $service($this);
+
+ if ( ! $service instanceof ServiceProvider ) {
+ throw new \Exception('Provider must be an instance of ServiceProvider.');
+ }
+
+ if ( method_exists($service, $method) ) {
+ $service->$method();
+ }
+ }
+ }
+
+ /**
+ * Get the name of the plugin.
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return static::NAME;
+ }
+
+ /**
+ * Get the version of the plugin.
+ *
+ * @return string
+ */
+ public function getVersion()
+ {
+ return static::VERSION;
+ }
+
+ /**
+ * Return root path of plugin.
+ *
+ * @return string
+ */
+ public function getRootPath(): string
+ {
+ return $this->rootPath;
+ }
+
+ /**
+ * Startup hooks to initialize the plugin.
+ */
+ protected function addStartUpHooks()
+ {
+ /**
+ * This hook registers a plugin function to be run when the plugin is activated.
+ */
+ register_activation_hook(__FILE__, [Hooks::class, 'pluginActivation']);
+
+ /**
+ * This hook is run immediately after any plugin is activated, and may be used to detect the activation of plugins.
+ * If a plugin is silently activated (such as during an update), this hook does not fire.
+ */
+ add_action('activated_plugin', [Hooks::class, 'pluginActivated'], 10, 2);
+ }
+
+ /**
+ * Teardown hooks to cleanup or uninstall the plugin.
+ */
+ protected function addTearDownHooks()
+ {
+ /**
+ * This hook is run immediately after any plugin is deactivated, and may be used to detect the deactivation of other plugins.
+ */
+ add_action('deactivated_plugin', [Hooks::class, 'pluginDeactivated'], 10, 2);
+
+ /**
+ * This hook registers a plugin function to be run when the plugin is deactivated.
+ */
+ register_deactivation_hook(__FILE__, [Hooks::class, 'pluginDeactivation']);
+
+ /**
+ * Registers the uninstall hook that will be called when the user clicks on the uninstall link that calls for the plugin to uninstall itself.
+ * The link won’t be active unless the plugin hooks into the action.
+ */
+ register_uninstall_hook(__FILE__, [Hooks::class, 'uninstallPlugin']);
+ }
+
+}
diff --git a/docs/files/Foundation/ServiceProvider.php.txt b/docs/files/Foundation/ServiceProvider.php.txt
new file mode 100644
index 0000000..cd2d7bf
--- /dev/null
+++ b/docs/files/Foundation/ServiceProvider.php.txt
@@ -0,0 +1,25 @@
+plugin = $plugin;
+ }
+
+ /**
+ * Register the service provider.
+ */
+ public abstract function register();
+
+}
diff --git a/docs/files/Metabox.MetaboxBaseServiceProvider.html b/docs/files/Metabox.MetaboxBaseServiceProvider.html
new file mode 100644
index 0000000..58dd895
--- /dev/null
+++ b/docs/files/Metabox.MetaboxBaseServiceProvider.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Metabox MetaboxBaseServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Metabox.MetaboxServiceProvider.html b/docs/files/Metabox.MetaboxServiceProvider.html
new file mode 100644
index 0000000..d76d23e
--- /dev/null
+++ b/docs/files/Metabox.MetaboxServiceProvider.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Metabox MetaboxServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Metabox/MetaboxBaseServiceProvider.php.txt b/docs/files/Metabox/MetaboxBaseServiceProvider.php.txt
new file mode 100644
index 0000000..becbe8e
--- /dev/null
+++ b/docs/files/Metabox/MetaboxBaseServiceProvider.php.txt
@@ -0,0 +1,45 @@
+processFieldGroup($fieldGroup));
+ }
+ $metabox['fields'] = $fields;
+
+ return $metabox;
+ }
+
+ private function processFieldGroup($fieldGroup)
+ {
+
+ $fields = [];
+ foreach ( $fieldGroup as $field ) {
+
+ $fields[] = $this->addPrefix($field);
+ }
+
+ return $fields;
+ }
+
+ private function addPrefix($field)
+ {
+
+ if ( isset($field['id']) ) {
+ $field['id'] = self::PREFIX . $field['id'];
+ }
+
+ return $field;
+ }
+}
diff --git a/docs/files/Metabox/MetaboxServiceProvider.php.txt b/docs/files/Metabox/MetaboxServiceProvider.php.txt
new file mode 100644
index 0000000..156f194
--- /dev/null
+++ b/docs/files/Metabox/MetaboxServiceProvider.php.txt
@@ -0,0 +1,31 @@
+plugin->loader->addFilter('rwmb_meta_boxes', $this, 'registerMetaboxes', 10, 1);
+ }
+
+ /**
+ * Register metaboxes.
+ *
+ * @param $rwmbMetaboxes
+ *
+ * @return array
+ */
+ public function registerMetaboxes($rwmbMetaboxes)
+ {
+ $configMetaboxes = $this->plugin->config->get('metaboxes');
+ $metaboxes = [];
+
+ foreach ( $configMetaboxes as $metabox ) {
+ $metaboxes[] = $this->processMetabox($metabox);
+ }
+
+ return array_merge($rwmbMetaboxes, apply_filters("owc/openpub/base/before-register-metaboxes", $metaboxes));
+ }
+}
diff --git a/docs/files/Models.Item.html b/docs/files/Models.Item.html
new file mode 100644
index 0000000..2e6d5ed
--- /dev/null
+++ b/docs/files/Models.Item.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Models Item.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Models.Location.html b/docs/files/Models.Location.html
new file mode 100644
index 0000000..3d0a3ad
--- /dev/null
+++ b/docs/files/Models.Location.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Models Location.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Models.Model.html b/docs/files/Models.Model.html
new file mode 100644
index 0000000..705d6bd
--- /dev/null
+++ b/docs/files/Models.Model.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Models Model.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Models.Search.html b/docs/files/Models.Search.html
new file mode 100644
index 0000000..129713a
--- /dev/null
+++ b/docs/files/Models.Search.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Models Search.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Models.Subtheme.html b/docs/files/Models.Subtheme.html
new file mode 100644
index 0000000..f509b6c
--- /dev/null
+++ b/docs/files/Models.Subtheme.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Models Subtheme.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Models.Theme.html b/docs/files/Models.Theme.html
new file mode 100644
index 0000000..78daec4
--- /dev/null
+++ b/docs/files/Models.Theme.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Models Theme.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Models/Item.php.txt b/docs/files/Models/Item.php.txt
new file mode 100644
index 0000000..ff1c7e6
--- /dev/null
+++ b/docs/files/Models/Item.php.txt
@@ -0,0 +1,51 @@
+queryArgs = array_merge($this->queryArgs, $args);
+ $this->queryArgs = array_merge($this->queryArgs, $this->addExpirationParameters());
+
+ return $this;
+ }
+
+ /**
+ * Add parameters to meta_query to remove items with expired date.
+ *
+ * @return array
+ */
+ protected function addExpirationParameters()
+ {
+ return [
+ 'meta_query' => [
+ 'relation' => 'OR',
+ [
+ 'key' => '_owc_openpub_expirationdate',
+ 'value' => date("Y-m-d H:I"),
+ 'compare' => '>=',
+ 'type' => 'DATETIME',
+ ],
+ [
+ 'key' => '_owc_openpub_expirationdate',
+ 'compare' => 'NOT EXISTS',
+ ],
+ ],
+ ];
+ }
+}
+
diff --git a/docs/files/Models/Location.php.txt b/docs/files/Models/Location.php.txt
new file mode 100644
index 0000000..42b7923
--- /dev/null
+++ b/docs/files/Models/Location.php.txt
@@ -0,0 +1,13 @@
+getProperty('globalFields')->class == __CLASS__) {
+ throw new PropertyNotExistsException(sprintf('Property $globalFields must be present on derived class %s.',
+ static::class));
+ }
+ }
+
+ /**
+ * Get all the items from the database.
+ *
+ * @return array
+ */
+ public function all(): array
+ {
+ $args = array_merge($this->queryArgs, [
+ 'post_type' => [$this->posttype],
+ ]);
+
+ $this->query = new WP_Query($args);
+
+ return array_map([$this, 'transform'], $this->getQuery()->posts);
+ }
+
+ /**
+ * Find a particular openpub item by ID.
+ *
+ * @param int $id
+ *
+ * @return array|null
+ */
+ public function find(int $id)
+ {
+
+ $args = array_merge($this->queryArgs, [
+ 'p' => $id,
+ 'post_type' => [$this->posttype],
+ ]);
+
+ $this->query = new WP_Query($args);
+
+ if (empty($this->getQuery()->posts)) {
+ return null;
+ }
+
+ return $this->transform(reset($this->getQuery()->posts));
+ }
+
+ /**
+ * Get the WP_Query object.
+ *
+ * @return null|WP_Query
+ */
+ public function getQuery()
+ {
+ return $this->query;
+ }
+
+ /**
+ * Add additional query arguments.
+ *
+ * @param array $args
+ *
+ * @return $this
+ */
+ public function query(array $args)
+ {
+ $this->queryArgs = array_merge($this->queryArgs, $args);
+
+ return $this;
+ }
+
+ /**
+ * Returns the query args.
+ *
+ * @return array
+ */
+ public function getQueryArgs()
+ {
+ return $this->queryArgs;
+ }
+
+ /**
+ * Hide a particular key from the request.
+ *
+ * @param array $keys
+ *
+ * @return $this
+ */
+ public function hide(array $keys)
+ {
+ $this->hidden = array_merge($this->hidden, $keys);
+
+ return $this;
+ }
+
+ /**
+ * Dynamically add additional fields to the model.
+ *
+ * @param string $key
+ * @param CreatesFields $creator
+ *
+ * @return $this
+ */
+ public function addField(string $key, CreatesFields $creator)
+ {
+ $this->fields[$key] = $creator;
+
+ return $this;
+ }
+
+ /**
+ * Adds a new field to the
+ *
+ * @param string $key
+ * @param CreatesFields $creator
+ * @param Closure|null $conditional
+ *
+ * @return void
+ */
+ public static function addGlobalField(string $key, CreatesFields $creator, Closure $conditional = null)
+ {
+ static::$globalFields[] = [
+ 'key' => $key,
+ 'creator' => $creator,
+ 'conditional' => $conditional,
+ ];
+ }
+
+ /**
+ * Get all defined global fields of the Model.
+ *
+ * @return array
+ */
+ public static function getGlobalFields(): array
+ {
+ uasort(static::$globalFields, function ($a, $b) {
+ return ($a['key'] < $b['key']) ? -1 : 1;
+ });
+
+ return static::$globalFields;
+ }
+
+ /**
+ * Transform a single WP_Post item.
+ *
+ * @param WP_Post $post
+ *
+ * @return array
+ */
+ public function transform(WP_Post $post)
+ {
+ $data = [
+ 'id' => $post->ID,
+ 'title' => $post->post_title,
+ 'content' => apply_filters('the_content', $post->post_content),
+ 'excerpt' => $post->post_excerpt,
+ 'date' => $post->post_date,
+ ];
+
+ $data = $this->assignFields($data, $post);
+
+ return $data;
+ }
+
+ /**
+ * Assign fields to the data array.
+ *
+ * @param array $data
+ * @param WP_Post $post
+ *
+ * @return array
+ */
+ protected function assignFields(array $data, WP_Post $post)
+ {
+ // Assign global fields.
+ foreach (static::getGlobalFields() as $field) {
+ if (in_array($field['key'], $this->hidden)) {
+ continue;
+ }
+
+ if (is_null($field['conditional'])) {
+ // If the field has no conditional set we will add it
+ $data[$field['key']] = $field['creator']->create($post);
+ } else {
+ // Check if the conditional matches.
+ if ($field['conditional']($post)) {
+ $data[$field['key']] = $field['creator']->create($post);
+ }
+ }
+ }
+
+ // Assign dynamic fields.
+ foreach ($this->fields as $key => $creator) {
+ $data[$key] = $creator->create($post);
+ }
+
+ return $data;
+ }
+
+}
+
diff --git a/docs/files/Models/Search.php.txt b/docs/files/Models/Search.php.txt
new file mode 100644
index 0000000..f1f2e19
--- /dev/null
+++ b/docs/files/Models/Search.php.txt
@@ -0,0 +1,96 @@
+request = $request;
+ }
+
+ /**
+ * Add additional query arguments.
+ *
+ * @param array $args
+ *
+ * @return $this
+ */
+ public function query(array $args)
+ {
+ $this->queryArgs = array_merge($this->queryArgs, $args);
+ $this->queryArgs = array_merge($this->queryArgs, $this->addSearchParameters());
+
+ return $this;
+ }
+
+ /**
+ * @return array
+ */
+ private function addSearchParameters()
+ {
+ return [
+ 'post_type' => 'any',
+ 'ep_integrate' => true,
+ 'posts_per_page' => $this->perPage(),
+ 's' => $this->sanitizeSearch()
+ ];
+ }
+
+ /**
+ * @return string
+ */
+ protected function sanitizeSearch()
+ {
+ return sanitize_text_field($this->request->get_param('s'));
+ }
+
+ /**
+ * @return int
+ */
+ protected function perPage()
+ {
+ $amount = $this->request->get_param('posts_per_page') ?? 10;
+
+ $amount = absint($amount);
+
+ /**
+ * Change the maximum number of posts per page
+ *
+ * @param int $max Maximum posts per page.
+ */
+ $max = (int)10;
+ if ( $amount > (int)$max ) {
+ $amount = $max;
+ }
+
+ return $amount;
+ }
+}
diff --git a/docs/files/Models/Subtheme.php.txt b/docs/files/Models/Subtheme.php.txt
new file mode 100644
index 0000000..7ed360c
--- /dev/null
+++ b/docs/files/Models/Subtheme.php.txt
@@ -0,0 +1,13 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
PostType PostTypeServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/PostType/PostTypeServiceProvider.php.txt b/docs/files/PostType/PostTypeServiceProvider.php.txt
new file mode 100644
index 0000000..e4c48ee
--- /dev/null
+++ b/docs/files/PostType/PostTypeServiceProvider.php.txt
@@ -0,0 +1,38 @@
+plugin->loader->addAction('init', $this, 'registerPostTypes');
+ }
+
+ /**
+ * register custom posttypes.
+ */
+ public function registerPostTypes()
+ {
+
+ if (function_exists('register_extended_post_type')) {
+
+ $this->configPostTypes = $this->plugin->config->get('posttypes');
+ foreach ($this->configPostTypes as $postTypeName => $postType) {
+
+ // Examples of registering post types: http://johnbillion.com/extended-cpts/
+ register_extended_post_type($postTypeName, $postType['args'], $postType['names']);
+ }
+ }
+ }
+}
diff --git a/docs/files/PostsToPosts.PostsToPostsServiceProvider.html b/docs/files/PostsToPosts.PostsToPostsServiceProvider.html
new file mode 100644
index 0000000..fb38ce1
--- /dev/null
+++ b/docs/files/PostsToPosts.PostsToPostsServiceProvider.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
PostsToPosts PostsToPostsServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/PostsToPosts/PostsToPostsServiceProvider.php.txt b/docs/files/PostsToPosts/PostsToPostsServiceProvider.php.txt
new file mode 100644
index 0000000..a1a94a0
--- /dev/null
+++ b/docs/files/PostsToPosts/PostsToPostsServiceProvider.php.txt
@@ -0,0 +1,83 @@
+ false,
+ 'reciprocal' => true,
+ 'sortable' => 'any',
+ 'cardinality' => 'many-to-many',
+ 'duplicate_connections' => false
+ ];
+
+ public function register()
+ {
+
+ $this->plugin->loader->addAction('init', $this, 'registerPostsToPostsConnections');
+ $this->plugin->loader->addFilter('p2p_connectable_args', $this, 'filterP2PConnectableArgs', 10);
+ }
+
+ /**
+ * Register P2P connections
+ */
+ public function registerPostsToPostsConnections()
+ {
+ if ( function_exists('p2p_register_connection_type') ) {
+
+ $posttypesInfo = $this->plugin->config->get('p2p_connections.posttypes_info');
+ $defaultConnectionArgs = apply_filters('owc/openpub/base/p2p-connection-defaults', $this->connectionDefaults);
+ $connections = $this->plugin->config->get('p2p_connections.connections');
+
+ foreach ( $connections as $connectionArgs ) {
+
+ $args = array_merge($defaultConnectionArgs, $connectionArgs);
+
+ $connectionType = [
+ 'id' => $posttypesInfo[ $connectionArgs['from'] ]['id'] . '_to_' . $posttypesInfo[ $connectionArgs['to'] ]['id'],
+ 'from' => $connectionArgs['from'],
+ 'to' => $connectionArgs['to'],
+ 'sortable' => $args['sortable'],
+ 'admin_column' => 'any',
+ 'from_labels' => [
+ 'column_title' => $posttypesInfo[ $connectionArgs['to'] ]['title']
+ ],
+ 'title' => [
+ 'from' => 'Koppel met een ' . $posttypesInfo[ $connectionArgs['to'] ]['title'],
+ 'to' => 'Koppel met een ' . $posttypesInfo[ $connectionArgs['from'] ]['title']
+ ],
+ 'can_create_post' => $args['can_create_post'],
+ 'reciprocal' => $args['reciprocal'],
+ ];
+
+ if ( $connectionArgs['from'] == $connectionArgs['to'] ) {
+ $connectionType['title']['to'] = '';
+ $connectionType['admin_box'] = 'from';
+ }
+
+ $connectionType = apply_filters("owc/openpub/base/before-register-p2p-connection/{$posttypesInfo[ $connectionArgs['from'] ]['id']}/{$posttypesInfo[ $connectionArgs['to'] ]['id']}", $connectionType );
+
+ p2p_register_connection_type($connectionType);
+ }
+ }
+ }
+
+ /**
+ * method for changing default P2P behaviour. Override by adding additional filter with higher priority (=larger number)
+ */
+ public function filterP2PConnectableArgs($args)
+ {
+ $args['orderby'] = 'title';
+ $args['order'] = 'asc';
+ $args['p2p:per_page'] = 25;
+
+ return $args;
+ }
+}
diff --git a/docs/files/Redirect.RedirectServiceProvider.html b/docs/files/Redirect.RedirectServiceProvider.html
new file mode 100644
index 0000000..5b1b61e
--- /dev/null
+++ b/docs/files/Redirect.RedirectServiceProvider.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Redirect RedirectServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Redirect/RedirectServiceProvider.php.txt b/docs/files/Redirect/RedirectServiceProvider.php.txt
new file mode 100644
index 0000000..5e7d540
--- /dev/null
+++ b/docs/files/Redirect/RedirectServiceProvider.php.txt
@@ -0,0 +1,28 @@
+plugin->loader->addAction('template_redirect', $this, 'redirectToMarketingSite', 10);
+ }
+
+ /**
+ * Redirect to marketing site.
+ */
+ public function redirectToMarketingSite()
+ {
+ if ( is_admin() || wp_doing_ajax() || is_feed() || WP_DEBUG ) {
+ return;
+ }
+
+ if ( wp_redirect('https://www.openwebconcept.nl/') ) {
+ exit();
+ }
+ }
+}
diff --git a/docs/files/RestAPI.Controllers.BaseController.html b/docs/files/RestAPI.Controllers.BaseController.html
new file mode 100644
index 0000000..74973ce
--- /dev/null
+++ b/docs/files/RestAPI.Controllers.BaseController.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/Controllers BaseController.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.Controllers.ItemController.html b/docs/files/RestAPI.Controllers.ItemController.html
new file mode 100644
index 0000000..6fcee6c
--- /dev/null
+++ b/docs/files/RestAPI.Controllers.ItemController.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/Controllers ItemController.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.Controllers.SearchController.html b/docs/files/RestAPI.Controllers.SearchController.html
new file mode 100644
index 0000000..1cbe007
--- /dev/null
+++ b/docs/files/RestAPI.Controllers.SearchController.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/Controllers SearchController.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.ItemFields.ConnectedField.html b/docs/files/RestAPI.ItemFields.ConnectedField.html
new file mode 100644
index 0000000..b8e3bb3
--- /dev/null
+++ b/docs/files/RestAPI.ItemFields.ConnectedField.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/ItemFields ConnectedField.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.ItemFields.DownloadsField.html b/docs/files/RestAPI.ItemFields.DownloadsField.html
new file mode 100644
index 0000000..08a7a0c
--- /dev/null
+++ b/docs/files/RestAPI.ItemFields.DownloadsField.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/ItemFields DownloadsField.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.ItemFields.FeaturedImageField.html b/docs/files/RestAPI.ItemFields.FeaturedImageField.html
new file mode 100644
index 0000000..0590b72
--- /dev/null
+++ b/docs/files/RestAPI.ItemFields.FeaturedImageField.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/ItemFields FeaturedImageField.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.ItemFields.LinksField.html b/docs/files/RestAPI.ItemFields.LinksField.html
new file mode 100644
index 0000000..1760c27
--- /dev/null
+++ b/docs/files/RestAPI.ItemFields.LinksField.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/ItemFields LinksField.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.ItemFields.NotesField.html b/docs/files/RestAPI.ItemFields.NotesField.html
new file mode 100644
index 0000000..89dea04
--- /dev/null
+++ b/docs/files/RestAPI.ItemFields.NotesField.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/ItemFields NotesField.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.ItemFields.SynonymsField.html b/docs/files/RestAPI.ItemFields.SynonymsField.html
new file mode 100644
index 0000000..737ad7c
--- /dev/null
+++ b/docs/files/RestAPI.ItemFields.SynonymsField.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/ItemFields SynonymsField.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.ItemFields.TaxonomyField.html b/docs/files/RestAPI.ItemFields.TaxonomyField.html
new file mode 100644
index 0000000..8163ae9
--- /dev/null
+++ b/docs/files/RestAPI.ItemFields.TaxonomyField.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI/ItemFields TaxonomyField.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI.RestAPIServiceProvider.html b/docs/files/RestAPI.RestAPIServiceProvider.html
new file mode 100644
index 0000000..a562fe4
--- /dev/null
+++ b/docs/files/RestAPI.RestAPIServiceProvider.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RestAPI RestAPIServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/RestAPI/Controllers/BaseController.php.txt b/docs/files/RestAPI/Controllers/BaseController.php.txt
new file mode 100644
index 0000000..3f172cd
--- /dev/null
+++ b/docs/files/RestAPI/Controllers/BaseController.php.txt
@@ -0,0 +1,65 @@
+plugin = $plugin;
+ }
+
+ /**
+ * Merges a paginator, based on a WP_Query, inside a data arary.
+ *
+ * @param array $data
+ * @param WP_Query $query
+ *
+ * @return array
+ */
+ protected function addPaginator(array $data, WP_Query $query): array
+ {
+ $page = $query->get('paged');
+ $page = $page == 0 ? 1 : $page;
+
+ return array_merge([
+ 'data' => $data
+ ], [
+ 'pagination' => [
+ 'total_count' => (int) $query->found_posts,
+ 'total_pages' => $query->max_num_pages,
+ 'current_page' => $page,
+ 'limit' => $query->get('posts_per_page')
+ ]
+ ]);
+ }
+
+ /**
+ * Get the paginator query params for a given query.
+ *
+ * @param WP_REST_Request $request
+ * @param int $limit
+ *
+ * @return array
+ */
+ protected function getPaginatorParams(WP_REST_Request $request, int $limit = 10)
+ {
+ return [
+ 'posts_per_page' => $request->get_param('limit') ?: $limit,
+ 'paged' => $request->get_param('page') ?: 0
+ ];
+ }
+
+}
diff --git a/docs/files/RestAPI/Controllers/ItemController.php.txt b/docs/files/RestAPI/Controllers/ItemController.php.txt
new file mode 100644
index 0000000..e60a601
--- /dev/null
+++ b/docs/files/RestAPI/Controllers/ItemController.php.txt
@@ -0,0 +1,102 @@
+query(apply_filters('owc/openpub/rest-api/items/query', $this->getPaginatorParams($request)));
+
+ $data = $items->all();
+ $query = $items->getQuery();
+
+ return $this->addPaginator($data, $query);
+ }
+
+ /**
+ * Get an individual post item.
+ *
+ * @param WP_REST_Request $request $request
+ *
+ * @return array|WP_Error
+ * @throws \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+ * @throws \ReflectionException
+ */
+ public function getItem(WP_REST_Request $request)
+ {
+ $id = (int) $request->get_param('id');
+
+ $item = (new Item)
+ ->query(apply_filters('owc/openpub/rest-api/items/query/single', []))
+ ->find($id);
+
+ if (!$item) {
+ return new WP_Error('no_item_found', sprintf('Item with ID "%d" not found (anymore)', $id), [
+ 'status' => 404,
+ ]);
+ }
+
+ $item['related'] = $this->addRelated($item);
+
+ return $item;
+ }
+
+ /**
+ * Get related items.
+ *
+ * @param array $item
+ *
+ * @return array
+ */
+ protected function addRelated($item)
+ {
+ $items = (new Item())
+ ->query([
+ 'post__not_in' => [$item['id']],
+ 'posts_per_page' => 10,
+ 'post_status' => 'publish',
+ 'post_type' => 'openpub-item',
+ ]);
+ $query = new WP_Query($items->getQueryArgs());
+ return array_map([$this, 'transform'], $query->posts);
+ }
+
+ /**
+ * Transform a single WP_Post item.
+ *
+ * @param WP_Post $post
+ *
+ * @return array
+ */
+ public function transform(WP_Post $post)
+ {
+ $data = [
+ 'id' => $post->ID,
+ 'title' => $post->post_title,
+ 'content' => apply_filters('the_content', $post->post_content),
+ 'excerpt' => $post->post_excerpt,
+ 'date' => $post->post_date,
+ ];
+
+ return $data;
+ }
+}
+
diff --git a/docs/files/RestAPI/Controllers/SearchController.php.txt b/docs/files/RestAPI/Controllers/SearchController.php.txt
new file mode 100644
index 0000000..7886515
--- /dev/null
+++ b/docs/files/RestAPI/Controllers/SearchController.php.txt
@@ -0,0 +1,32 @@
+query(['post_type' => 'any'])
+ ->query(apply_filters('owc/openpub/rest-api/search/query', $this->getPaginatorParams($request)));
+
+ $data = $search->all();
+ $query = $search->getQuery();
+
+ return $this->addPaginator($data, $query);
+ }
+}
diff --git a/docs/files/RestAPI/ItemFields/ConnectedField.php.txt b/docs/files/RestAPI/ItemFields/ConnectedField.php.txt
new file mode 100644
index 0000000..d501186
--- /dev/null
+++ b/docs/files/RestAPI/ItemFields/ConnectedField.php.txt
@@ -0,0 +1,63 @@
+plugin->config->get('p2p_connections.connections'), function($connection) {
+ return in_array('openpub-item', $connection, true);
+ });
+
+ $result = [];
+
+ foreach ( $connections as $connection ) {
+ $type = $connection['from'] . '_to_' . $connection['to'];
+ $result[ $type ] = $this->getConnectedItems($post->ID, $type);
+ }
+
+ return $result;
+ }
+
+ /**
+ * Get connected items of a post, for a specific connection type.
+ *
+ * @param int $postID
+ * @param string $type
+ *
+ * @return array
+ */
+ protected function getConnectedItems(int $postID, string $type): array
+ {
+ $connection = p2p_type($type);
+
+ if ( ! $connection ) {
+ return [
+ 'error' => sprintf(__('Connection type "%s" does not exist', 'pdc-base'), $type)
+ ];
+ }
+
+ return array_map(function(WP_Post $post) {
+ return [
+ 'id' => $post->ID,
+ 'title' => $post->post_title,
+ 'slug' => $post->post_name,
+ 'excerpt' => $post->post_excerpt,
+ 'date' => $post->post_date
+ ];
+ }, $connection->get_connected($postID)->posts);
+ }
+
+}
diff --git a/docs/files/RestAPI/ItemFields/DownloadsField.php.txt b/docs/files/RestAPI/ItemFields/DownloadsField.php.txt
new file mode 100644
index 0000000..c334f60
--- /dev/null
+++ b/docs/files/RestAPI/ItemFields/DownloadsField.php.txt
@@ -0,0 +1,42 @@
+ esc_attr(strip_tags($download['openpub_downloads_title'])),
+ 'url' => esc_url($download['openpub_downloads_url'])
+ ];
+ }, $this->getDownloads($post));
+ }
+
+ /**
+ * Get downloads of a post, if URL & title are present.
+ *
+ * @param WP_Post $post
+ *
+ * @return array
+ */
+ private function getDownloads(WP_Post $post)
+ {
+ return array_filter(get_post_meta($post->ID, '_owc_openpub_downloads_group', true) ?: [], function ($download) {
+ return ! empty($download['openpub_downloads_url']) && ! empty($download['openpub_downloads_title']);
+ });
+ }
+
+}
diff --git a/docs/files/RestAPI/ItemFields/FeaturedImageField.php.txt b/docs/files/RestAPI/ItemFields/FeaturedImageField.php.txt
new file mode 100644
index 0000000..9c0d6f0
--- /dev/null
+++ b/docs/files/RestAPI/ItemFields/FeaturedImageField.php.txt
@@ -0,0 +1,70 @@
+ID)) {
+ return [];
+ }
+
+ $id = get_post_thumbnail_id($post->ID);
+ $attachment = get_post($id);
+ $imageSize = 'large';
+
+ $result = [];
+
+ $result['title'] = $attachment->post_title;
+ $result['description'] = $attachment->post_content;
+ $result['caption'] = $attachment->post_excerpt;
+ $result['alt'] = get_post_meta($attachment->ID, '_wp_attachment_image_alt', true);
+
+ $meta = $this->getAttachmentMeta($id);
+
+ $result['rendered'] = wp_get_attachment_image($id, $imageSize);
+ $result['sizes'] = wp_get_attachment_image_sizes($id, $imageSize, $meta);
+ $result['srcset'] = wp_get_attachment_image_srcset($id, $imageSize, $meta);
+ $result['meta'] = $meta;
+
+ return $result;
+ }
+
+ /**
+ * Get meta data of an attachment.
+ *
+ * @param $id
+ *
+ * @return array
+ */
+ private function getAttachmentMeta($id): array
+ {
+ $meta = wp_get_attachment_metadata($id, false);
+
+ if (empty($meta['sizes'])) {
+ return [];
+ }
+
+ foreach (array_keys($meta['sizes']) as $size) {
+ $src = wp_get_attachment_image_src($id, $size);
+ $meta['sizes'][$size]['url'] = $src[0];
+ }
+
+ unset($meta['image_meta']);
+
+ return $meta;
+ }
+
+}
diff --git a/docs/files/RestAPI/ItemFields/LinksField.php.txt b/docs/files/RestAPI/ItemFields/LinksField.php.txt
new file mode 100644
index 0000000..7bdf879
--- /dev/null
+++ b/docs/files/RestAPI/ItemFields/LinksField.php.txt
@@ -0,0 +1,42 @@
+ esc_attr(strip_tags($link['openpub_links_title'])),
+ 'url' => esc_url($link['openpub_links_url'])
+ ];
+ }, $this->getLinks($post));
+ }
+
+ /**
+ * Get links of a post, if URL & title are present.
+ *
+ * @param WP_Post $post
+ *
+ * @return array
+ */
+ private function getLinks(WP_Post $post)
+ {
+ return array_filter(get_post_meta($post->ID, '_owc_openpub_links_group', true) ?: [], function ($link) {
+ return ! empty($link['openpub_links_url']) && ! empty($link['openpub_links_title']);
+ });
+ }
+
+}
diff --git a/docs/files/RestAPI/ItemFields/NotesField.php.txt b/docs/files/RestAPI/ItemFields/NotesField.php.txt
new file mode 100644
index 0000000..52c34f7
--- /dev/null
+++ b/docs/files/RestAPI/ItemFields/NotesField.php.txt
@@ -0,0 +1,33 @@
+getNotes($post));
+ }
+
+ /**
+ * Get notes of a post.
+ *
+ * @param WP_Post $post
+ *
+ * @return string
+ */
+ private function getNotes(WP_Post $post)
+ {
+ return get_post_meta($post->ID, '_owc_openpub_notes', true) ?: '';
+ }
+}
diff --git a/docs/files/RestAPI/ItemFields/SynonymsField.php.txt b/docs/files/RestAPI/ItemFields/SynonymsField.php.txt
new file mode 100644
index 0000000..ff9c115
--- /dev/null
+++ b/docs/files/RestAPI/ItemFields/SynonymsField.php.txt
@@ -0,0 +1,33 @@
+getSynonyms($post)));
+ }
+
+ /**
+ * Get synonyms of a post, if URL & title are present.
+ *
+ * @param WP_Post $post
+ *
+ * @return string
+ */
+ private function getSynonyms(WP_Post $post)
+ {
+ return get_post_meta($post->ID, '_owc_openpub_tags', true) ?: '';
+ }
+}
diff --git a/docs/files/RestAPI/ItemFields/TaxonomyField.php.txt b/docs/files/RestAPI/ItemFields/TaxonomyField.php.txt
new file mode 100644
index 0000000..da0daf0
--- /dev/null
+++ b/docs/files/RestAPI/ItemFields/TaxonomyField.php.txt
@@ -0,0 +1,54 @@
+plugin->config->get('taxonomies')) as $taxonomy) {
+ $result[$taxonomy] = $this->getTerms($post->ID, $taxonomy);
+ }
+
+ return $result;
+ }
+
+ /**
+ * Get terms of a taxonomy to which the post is connected.
+ *
+ * @param int $postID
+ * @param string $taxonomy
+ *
+ * @return array
+ */
+ private function getTerms(int $postID, string $taxonomy): array
+ {
+ $terms = wp_get_post_terms($postID, $taxonomy);
+
+ if (is_wp_error($terms)) {
+ return [];
+ }
+
+ return array_map(function ($term) {
+ return [
+ 'id' => $term->term_id,
+ 'name' => $term->name,
+ 'slug' => $term->slug
+ ];
+ }, $terms);
+ }
+
+}
diff --git a/docs/files/RestAPI/RestAPIServiceProvider.php.txt b/docs/files/RestAPI/RestAPIServiceProvider.php.txt
new file mode 100644
index 0000000..c82063a
--- /dev/null
+++ b/docs/files/RestAPI/RestAPIServiceProvider.php.txt
@@ -0,0 +1,84 @@
+plugin->loader->addFilter('rest_api_init', $this, 'registerRoutes');
+ $this->plugin->loader->addFilter('owc/config-expander/rest-api/whitelist', $this, 'whitelist', 10, 1);
+
+ $this->registerModelFields();
+ }
+
+ /**
+ * Register routes on the rest API.
+ *
+ * @return void
+ */
+ public function registerRoutes()
+ {
+ register_rest_route($this->namespace, 'items', [
+ 'methods' => 'GET',
+ 'callback' => [new ItemController($this->plugin), 'getItems']
+ ]);
+
+ register_rest_route($this->namespace, 'items/(?P\d+)', [
+ 'methods' => 'GET',
+ 'callback' => [new ItemController($this->plugin), 'getItem']
+ ]);
+
+ register_rest_route($this->namespace, 'search', [
+ 'methods' => 'GET',
+ 'callback' => [new SearchController($this->plugin), 'search'],
+ 'args' => []
+ ]);
+ }
+
+ /**
+ * Whitelist endpoints within Config Expander.
+ *
+ * @param $whitelist
+ *
+ * @return array
+ */
+ public function whitelist($whitelist): array
+ {
+ // Remove default root endpoint
+ unset($whitelist['wp/v2']);
+
+ $whitelist[ $this->namespace ] = [
+ 'endpoint_stub' => '/' . $this->namespace,
+ 'methods' => ['GET']
+ ];
+
+ return $whitelist;
+ }
+
+ /**
+ * Register fields for all configured posttypes.
+ */
+ private function registerModelFields()
+ {
+ // Add global fields for all Models.
+ foreach ( $this->plugin->config->get('api.models') as $posttype => $data ) {
+ foreach ( $data['fields'] as $key => $creator ) {
+ $class = '\OWC\OpenPub\Base\Models\\' . ucfirst($posttype);
+ if ( class_exists($class) ) {
+ $class::addGlobalField($key, new $creator($this->plugin));
+ }
+ }
+ }
+ }
+}
diff --git a/docs/files/Support.CreatesFields.html b/docs/files/Support.CreatesFields.html
new file mode 100644
index 0000000..7e30318
--- /dev/null
+++ b/docs/files/Support.CreatesFields.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Support CreatesFields.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Support/CreatesFields.php.txt b/docs/files/Support/CreatesFields.php.txt
new file mode 100644
index 0000000..7cb4a35
--- /dev/null
+++ b/docs/files/Support/CreatesFields.php.txt
@@ -0,0 +1,35 @@
+plugin = $plugin;
+ }
+
+ /**
+ * Create an additional field on an array.
+ *
+ * @param WP_Post $post
+ *
+ * @return mixed
+ */
+ abstract public function create(WP_Post $post);
+
+}
diff --git a/docs/files/Taxonomy.TaxonomyServiceProvider.html b/docs/files/Taxonomy.TaxonomyServiceProvider.html
new file mode 100644
index 0000000..dee6ade
--- /dev/null
+++ b/docs/files/Taxonomy.TaxonomyServiceProvider.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Taxonomy TaxonomyServiceProvider.php
+
+
+
+
+
+
Classes
+
+
+
+
+
+ Package
+ \Default
+
+
+
+ Tags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/files/Taxonomy/TaxonomyServiceProvider.php.txt b/docs/files/Taxonomy/TaxonomyServiceProvider.php.txt
new file mode 100644
index 0000000..de76e3a
--- /dev/null
+++ b/docs/files/Taxonomy/TaxonomyServiceProvider.php.txt
@@ -0,0 +1,37 @@
+plugin->loader->addAction('init', $this, 'registerTaxonomies');
+ }
+
+ /**
+ * Register custom taxonomies via extended_cpts
+ */
+ public function registerTaxonomies()
+ {
+ if ( function_exists('register_extended_taxonomy') ) {
+
+ $this->configTaxonomies = $this->plugin->config->get('taxonomies');
+ foreach ( $this->configTaxonomies as $taxonomyName => $taxonomy ) {
+
+ // Examples of registering taxonomies: http://johnbillion.com/extended-cpts/
+ register_extended_taxonomy($taxonomyName, $taxonomy['object_types'], $taxonomy['args'], $taxonomy['names']);
+ }
+ }
+ }
+}
diff --git a/docs/font/FontAwesome.otf b/docs/font/FontAwesome.otf
new file mode 100644
index 0000000..3461e3f
Binary files /dev/null and b/docs/font/FontAwesome.otf differ
diff --git a/docs/font/fontawesome-webfont.eot b/docs/font/fontawesome-webfont.eot
new file mode 100644
index 0000000..6cfd566
Binary files /dev/null and b/docs/font/fontawesome-webfont.eot differ
diff --git a/docs/font/fontawesome-webfont.svg b/docs/font/fontawesome-webfont.svg
new file mode 100644
index 0000000..a9f8469
--- /dev/null
+++ b/docs/font/fontawesome-webfont.svg
@@ -0,0 +1,504 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/font/fontawesome-webfont.ttf b/docs/font/fontawesome-webfont.ttf
new file mode 100644
index 0000000..5cd6cff
Binary files /dev/null and b/docs/font/fontawesome-webfont.ttf differ
diff --git a/docs/font/fontawesome-webfont.woff b/docs/font/fontawesome-webfont.woff
new file mode 100644
index 0000000..9eaecb3
Binary files /dev/null and b/docs/font/fontawesome-webfont.woff differ
diff --git a/docs/graphs/class.html b/docs/graphs/class.html
new file mode 100644
index 0000000..618b9a4
--- /dev/null
+++ b/docs/graphs/class.html
@@ -0,0 +1,172 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/images/apple-touch-icon-114x114.png b/docs/images/apple-touch-icon-114x114.png
new file mode 100644
index 0000000..1506f6a
Binary files /dev/null and b/docs/images/apple-touch-icon-114x114.png differ
diff --git a/docs/images/apple-touch-icon-72x72.png b/docs/images/apple-touch-icon-72x72.png
new file mode 100644
index 0000000..d813259
Binary files /dev/null and b/docs/images/apple-touch-icon-72x72.png differ
diff --git a/docs/images/apple-touch-icon.png b/docs/images/apple-touch-icon.png
new file mode 100644
index 0000000..2d320cb
Binary files /dev/null and b/docs/images/apple-touch-icon.png differ
diff --git a/docs/images/custom-icons.svg b/docs/images/custom-icons.svg
new file mode 100644
index 0000000..c6b8037
--- /dev/null
+++ b/docs/images/custom-icons.svg
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico
new file mode 100644
index 0000000..9575ac8
Binary files /dev/null and b/docs/images/favicon.ico differ
diff --git a/docs/images/hierarchy-item.png b/docs/images/hierarchy-item.png
new file mode 100644
index 0000000..c7756e7
Binary files /dev/null and b/docs/images/hierarchy-item.png differ
diff --git a/docs/images/icon-class-13x13.png b/docs/images/icon-class-13x13.png
new file mode 100644
index 0000000..731f0bd
Binary files /dev/null and b/docs/images/icon-class-13x13.png differ
diff --git a/docs/images/icon-class.svg b/docs/images/icon-class.svg
new file mode 100644
index 0000000..7dacd0c
--- /dev/null
+++ b/docs/images/icon-class.svg
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ I
+
+
+ T
+
+
diff --git a/docs/images/icon-interface-13x13.png b/docs/images/icon-interface-13x13.png
new file mode 100644
index 0000000..aa24fa9
Binary files /dev/null and b/docs/images/icon-interface-13x13.png differ
diff --git a/docs/images/icon-interface.svg b/docs/images/icon-interface.svg
new file mode 100644
index 0000000..7c6371e
--- /dev/null
+++ b/docs/images/icon-interface.svg
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/icon-trait-13x13.png b/docs/images/icon-trait-13x13.png
new file mode 100644
index 0000000..3c2792b
Binary files /dev/null and b/docs/images/icon-trait-13x13.png differ
diff --git a/docs/images/icon-trait.svg b/docs/images/icon-trait.svg
new file mode 100644
index 0000000..03cf08f
--- /dev/null
+++ b/docs/images/icon-trait.svg
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/iviewer/grab.cur b/docs/images/iviewer/grab.cur
new file mode 100644
index 0000000..ef540be
Binary files /dev/null and b/docs/images/iviewer/grab.cur differ
diff --git a/docs/images/iviewer/hand.cur b/docs/images/iviewer/hand.cur
new file mode 100644
index 0000000..1a5bafb
Binary files /dev/null and b/docs/images/iviewer/hand.cur differ
diff --git a/docs/images/iviewer/iviewer.rotate_left.png b/docs/images/iviewer/iviewer.rotate_left.png
new file mode 100644
index 0000000..df0956d
Binary files /dev/null and b/docs/images/iviewer/iviewer.rotate_left.png differ
diff --git a/docs/images/iviewer/iviewer.rotate_right.png b/docs/images/iviewer/iviewer.rotate_right.png
new file mode 100644
index 0000000..7a6c829
Binary files /dev/null and b/docs/images/iviewer/iviewer.rotate_right.png differ
diff --git a/docs/images/iviewer/iviewer.zoom_fit.png b/docs/images/iviewer/iviewer.zoom_fit.png
new file mode 100644
index 0000000..364e01d
Binary files /dev/null and b/docs/images/iviewer/iviewer.zoom_fit.png differ
diff --git a/docs/images/iviewer/iviewer.zoom_in.png b/docs/images/iviewer/iviewer.zoom_in.png
new file mode 100644
index 0000000..7899332
Binary files /dev/null and b/docs/images/iviewer/iviewer.zoom_in.png differ
diff --git a/docs/images/iviewer/iviewer.zoom_out.png b/docs/images/iviewer/iviewer.zoom_out.png
new file mode 100644
index 0000000..893f350
Binary files /dev/null and b/docs/images/iviewer/iviewer.zoom_out.png differ
diff --git a/docs/images/iviewer/iviewer.zoom_zero.png b/docs/images/iviewer/iviewer.zoom_zero.png
new file mode 100644
index 0000000..c981db6
Binary files /dev/null and b/docs/images/iviewer/iviewer.zoom_zero.png differ
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..96bc6d2
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,632 @@
+
+
+
+
+
+ API Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\
+
+
Namespaces
+
+
+
+
+
+
+
+
+ Namespace hierarchy
+
+ \
+
+
+
+
+
+
+
+
+
+
+
+ EP_HOST
+ EP_HOST
+
+
+
+
+
+
+
+ File
+
+
+ Tags
+
+
+
+ package
+
+
+ Default
+
+
+
+
+
+
+
+
+
+
+ EP_INDEX_PREFIX
+ EP_INDEX_PREFIX
+
+
+
+
+
+
+
+ File
+
+
+ Tags
+
+
+
+ package
+
+
+ Default
+
+
+
+
+
+
+
+
+
+
+ ES_SHIELD
+ ES_SHIELD
+
+
+
+
+
+
+
+ File
+
+
+ Tags
+
+
+
+ package
+
+
+ Default
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/js/bootstrap.min.js b/docs/js/bootstrap.min.js
new file mode 100644
index 0000000..319a85d
--- /dev/null
+++ b/docs/js/bootstrap.min.js
@@ -0,0 +1,7 @@
+/**
+* Bootstrap.js by @fat & @mdo
+* plugins: bootstrap-transition.js, bootstrap-modal.js, bootstrap-dropdown.js, bootstrap-scrollspy.js, bootstrap-tab.js, bootstrap-tooltip.js, bootstrap-popover.js, bootstrap-affix.js, bootstrap-alert.js, bootstrap-button.js, bootstrap-collapse.js, bootstrap-carousel.js, bootstrap-typeahead.js
+* Copyright 2012 Twitter, Inc.
+* http://www.apache.org/licenses/LICENSE-2.0.txt
+*/
+!function(a){a(function(){a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){var b=function(b,c){this.options=c,this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this,c=a.Event("show");this.$element.trigger(c);if(this.isShown||c.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var c=a.support.transition&&b.$element.hasClass("fade");b.$element.parent().length||b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in").attr("aria-hidden",!1),b.enforceFocus(),c?b.$element.one(a.support.transition.end,function(){b.$element.focus().trigger("shown")}):b.$element.focus().trigger("shown")})},hide:function(b){b&&b.preventDefault();var c=this;b=a.Event("hide"),this.$element.trigger(b);if(!this.isShown||b.isDefaultPrevented())return;this.isShown=!1,this.escape(),a(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),a.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var b=this;a(document).on("focusin.modal",function(a){b.$element[0]!==a.target&&!b.$element.has(a.target).length&&b.$element.focus()})},escape:function(){var a=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(b){b.which==27&&a.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),b.hideModal()},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),b.hideModal()})},hideModal:function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('
').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?a.proxy(this.$element[0].focus,this.$element[0]):a.proxy(this.hide,this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!b)return;e?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b):b()):b&&b()}};var c=a.fn.modal;a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("modal"),f=a.extend({},a.fn.modal.defaults,d.data(),typeof c=="object"&&c);e||d.data("modal",e=new b(this,f)),typeof c=="string"?e[c]():f.show&&e.show()})},a.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f).one("hide",function(){c.focus()})})}(window.jQuery),!function(a){function d(){a(".dropdown-backdrop").remove(),a(b).each(function(){e(a(this)).removeClass("open")})}function e(b){var c=b.attr("data-target"),d;c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,"")),d=c&&a(c);if(!d||!d.length)d=b.parent();return d}var b="[data-toggle=dropdown]",c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),f,g;if(c.is(".disabled, :disabled"))return;return f=e(c),g=f.hasClass("open"),d(),g||("ontouchstart"in document.documentElement&&a('
').insertBefore(a(this)).on("click",d),f.toggleClass("open")),c.focus(),!1},keydown:function(c){var d,f,g,h,i,j;if(!/(38|40|27)/.test(c.keyCode))return;d=a(this),c.preventDefault(),c.stopPropagation();if(d.is(".disabled, :disabled"))return;h=e(d),i=h.hasClass("open");if(!i||i&&c.keyCode==27)return c.which==27&&h.find(b).focus(),d.click();f=a("[role=menu] li:not(.divider):visible a",h);if(!f.length)return;j=f.index(f.filter(":focus")),c.keyCode==38&&j>0&&j--,c.keyCode==40&&j a",this.$body=a("body"),this.refresh(),this.process()}b.prototype={constructor:b,refresh:function(){var b=this,c;this.offsets=a([]),this.targets=a([]),c=this.$body.find(this.selector).map(function(){var c=a(this),d=c.data("target")||c.attr("href"),e=/^#\w/.test(d)&&a(d);return e&&e.length&&[[e.position().top+(!a.isWindow(b.$scrollElement.get(0))&&b.$scrollElement.scrollTop()),d]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},process:function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},activate:function(b){var c,d;this.activeTarget=b,a(this.selector).parent(".active").removeClass("active"),d=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',c=a(d).parent("li").addClass("active"),c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active")),c.trigger("activate")}};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("scrollspy"),f=typeof c=="object"&&c;e||d.data("scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.defaults={offset:10},a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){var b=function(b){this.element=a(b)};b.prototype={constructor:b,show:function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target"),e,f,g;d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;e=c.find(".active:last a")[0],g=a.Event("show",{relatedTarget:e}),b.trigger(g);if(g.isDefaultPrevented())return;f=a(d),this.activate(b.parent("li"),c),this.activate(f,f.parent(),function(){b.trigger({type:"shown",relatedTarget:e})})},activate:function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g):g(),e.removeClass("in")}};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("tab");e||d.data("tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f,g,h,i;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,g=this.options.trigger.split(" ");for(i=g.length;i--;)h=g[i],h=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):h!="manual"&&(e=h=="hover"?"mouseenter":"focus",f=h=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this)));this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,this.$element.data(),b),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a.fn[this.type].defaults,d={},e;this._options&&a.each(this._options,function(a,b){c[a]!=b&&(d[a]=b)},this),e=a(b.currentTarget)[this.type](d).data(this.type);if(!e.options.delay||!e.options.delay.show)return e.show();clearTimeout(this.timeout),e.hoverState="in",this.timeout=setTimeout(function(){e.hoverState=="in"&&e.show()},e.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var b,c,d,e,f,g,h=a.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(h);if(h.isDefaultPrevented())return;b=this.tip(),this.setContent(),this.options.animation&&b.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,b[0],this.$element[0]):this.options.placement,b.detach().css({top:0,left:0,display:"block"}),this.options.container?b.appendTo(this.options.container):b.insertAfter(this.$element),c=this.getPosition(),d=b[0].offsetWidth,e=b[0].offsetHeight;switch(f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}this.applyPlacement(g,f),this.$element.trigger("shown")}},applyPlacement:function(a,b){var c=this.tip(),d=c[0].offsetWidth,e=c[0].offsetHeight,f,g,h,i;c.offset(a).addClass(b).addClass("in"),f=c[0].offsetWidth,g=c[0].offsetHeight,b=="top"&&g!=e&&(a.top=a.top+e-g,i=!0),b=="bottom"||b=="top"?(h=0,a.left<0&&(h=a.left*-2,a.left=0,c.offset(a),f=c[0].offsetWidth,g=c[0].offsetHeight),this.replaceArrow(h-d+f,f,"left")):this.replaceArrow(g-e,g,"top"),i&&c.offset(a)},replaceArrow:function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function e(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip(),d=a.Event("hide");this.$element.trigger(d);if(d.isDefaultPrevented())return;return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?e():c.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var b=this.$element[0];return a.extend({},typeof b.getBoundingClientRect=="function"?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=b?a(b.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=(typeof c.content=="function"?c.content.call(b[0]):c.content)||b.attr("data-content"),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:''}),a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),!function(a){var b=function(b,c){this.options=a.extend({},a.fn.affix.defaults,c),this.$window=a(window).on("scroll.affix.data-api",a.proxy(this.checkPosition,this)).on("click.affix.data-api",a.proxy(function(){setTimeout(a.proxy(this.checkPosition,this),1)},this)),this.$element=a(b),this.checkPosition()};b.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var b=a(document).height(),c=this.$window.scrollTop(),d=this.$element.offset(),e=this.options.offset,f=e.bottom,g=e.top,h="affix affix-top affix-bottom",i;typeof e!="object"&&(f=g=e),typeof g=="function"&&(g=e.top()),typeof f=="function"&&(f=e.bottom()),i=this.unpin!=null&&c+this.unpin<=d.top?!1:f!=null&&d.top+this.$element.height()>=b-f?"bottom":g!=null&&c<=g?"top":!1;if(this.affixed===i)return;this.affixed=i,this.unpin=i=="bottom"?d.top-c:null,this.$element.removeClass(h).addClass("affix"+(i?"-"+i:""))};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("affix"),f=typeof c=="object"&&c;e||d.data("affix",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.defaults={offset:0},a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery),!function(a){var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.alert.data-api",b,c.prototype.close)}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b,c,d,e;if(this.transitioning||this.$element.hasClass("in"))return;b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find("> .accordion-group > .in");if(d&&d.length){e=d.data("collapse");if(e&&e.transitioning)return;d.collapse("hide"),e||d.data("collapse",null)}this.$element[b](0),this.transition("addClass",a.Event("show"),"shown"),a.support.transition&&this.$element[b](this.$element[0][c])},hide:function(){var b;if(this.transitioning||!this.$element.hasClass("in"))return;b=this.dimension(),this.reset(this.$element[b]()),this.transition("removeClass",a.Event("hide"),"hidden"),this.$element[b](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a!==null?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c.type=="show"&&e.reset(),e.transitioning=0,e.$element.trigger(d)};this.$element.trigger(c);if(c.isDefaultPrevented())return;this.transitioning=1,this.$element[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=a.extend({},a.fn.collapse.defaults,d.data(),typeof c=="object"&&c);e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();c[a(e).hasClass("in")?"addClass":"removeClass"]("collapsed"),a(e).collapse(f)})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(b){var c=this.getActiveIndex(),d=this;if(b>this.$items.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){d.to(b)}):c==b?this.pause().cycle():this.slide(b>c?"next":"prev",a(this.$items[b]))},pause:function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j;this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h](),j=a.Event("slide",{relatedTarget:e[0],direction:g});if(e.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")}));if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=a.extend({},a.fn.carousel.defaults,typeof c=="object"&&c),g=typeof c=="string"?c:f.slide;e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),c.data()),g;e.carousel(f),(g=c.attr("data-slide-to"))&&e.data("carousel").pause().to(g).cycle(),b.preventDefault()})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=a(this.options.menu),this.shown=!1,this.listen()};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(a)).change(),this.hide()},updater:function(a){return a},show:function(){var b=a.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:b.top+b.height,left:b.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){var c;return this.query=this.$element.val(),!this.query||this.query.length"+b+""})},render:function(b){var c=this;return b=a(b).map(function(b,d){return b=a(c.options.item).attr("data-value",d),b.find("a").html(c.highlighter(d)),b[0]}),b.first().addClass("active"),this.$menu.html(b),this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active")},listen:function(){this.$element.on("focus",a.proxy(this.focus,this)).on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",a.proxy(this.keydown,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this)).on("mouseleave","li",a.proxy(this.mouseleave,this))},eventSupported:function(a){var b=a in this.$element;return b||(this.$element.setAttribute(a,"return;"),b=typeof this.$element[a]=="function"),b},move:function(a){if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:a.preventDefault(),this.prev();break;case 40:a.preventDefault(),this.next()}a.stopPropagation()},keydown:function(b){this.suppressKeyPressRepeat=~a.inArray(b.keyCode,[40,38,9,13,27]),this.move(b)},keypress:function(a){if(this.suppressKeyPressRepeat)return;this.move(a)},keyup:function(a){switch(a.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}a.stopPropagation(),a.preventDefault()},focus:function(a){this.focused=!0},blur:function(a){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(a){a.stopPropagation(),a.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(b){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")},mouseleave:function(a){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var c=a.fn.typeahead;a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.typeahead.defaults={source:[],items:8,menu:'',item:' ',minLength:1},a.fn.typeahead.Constructor=b,a.fn.typeahead.noConflict=function(){return a.fn.typeahead=c,this},a(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);if(c.data("typeahead"))return;c.typeahead(c.data())})}(window.jQuery)
\ No newline at end of file
diff --git a/docs/js/html5.js b/docs/js/html5.js
new file mode 100644
index 0000000..448cebd
--- /dev/null
+++ b/docs/js/html5.js
@@ -0,0 +1,8 @@
+/*
+ HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
+a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x";
+c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML=" ";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
+"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);
+if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;da?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML=" ",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f
+}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML=" a ",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML=" ",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h ]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/\s*$/g,sb={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:l.htmlSerialize?[0,"",""]:[1,"X","
"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1>$2>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?"
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/reports/errors.html b/docs/reports/errors.html
new file mode 100644
index 0000000..8b66c0b
--- /dev/null
+++ b/docs/reports/errors.html
@@ -0,0 +1,1616 @@
+
+
+
+
+
+ » Compilation errors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \
+ Compilation Errors
+
+
+
+
+
+
+
+ Metabox/MetaboxBaseServiceProvider.php
+ 8
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 7
+ No summary for class \OWC\OpenPub\Base\Metabox\MetaboxBaseServiceProvider
+
+
+ error
+ 12
+ Argument $metabox is missing from the Docblock of processMetabox
+
+
+ error
+ 12
+ No summary for method processMetabox()
+
+
+ error
+ 24
+ Argument $fieldGroup is missing from the Docblock of processFieldGroup
+
+
+ error
+ 24
+ No summary for method processFieldGroup()
+
+
+ error
+ 36
+ Argument $field is missing from the Docblock of addPrefix
+
+
+ error
+ 36
+ No summary for method addPrefix()
+
+
+
+
+
+
+
+
+
+ Metabox/MetaboxServiceProvider.php
+ 3
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Metabox\MetaboxServiceProvider
+
+
+ error
+ 8
+ No summary for method register()
+
+
+
+
+
+
+
+
+
+ Models/Model.php
+ 3
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 11
+ No summary for class \OWC\OpenPub\Base\Models\Model
+
+
+ error
+ 14
+ No summary for property $posttype
+
+
+
+
+
+
+
+
+
+ Models/Item.php
+ 4
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Models\Item
+
+
+ error
+ 8
+ No summary for property $posttype
+
+
+ error
+ 10
+ No summary for property $globalFields
+
+
+
+
+
+
+
+
+
+ Models/Location.php
+ 4
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Models\Location
+
+
+ error
+ 8
+ No summary for property $posttype
+
+
+ error
+ 10
+ No summary for property $globalFields
+
+
+
+
+
+
+
+
+
+ Models/Theme.php
+ 4
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Models\Theme
+
+
+ error
+ 8
+ No summary for property $posttype
+
+
+ error
+ 10
+ No summary for property $globalFields
+
+
+
+
+
+
+
+
+
+ Models/Subtheme.php
+ 4
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Models\Subtheme
+
+
+ error
+ 8
+ No summary for property $posttype
+
+
+ error
+ 10
+ No summary for property $globalFields
+
+
+
+
+
+
+
+
+
+ Models/Search.php
+ 9
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 7
+ No summary for class \OWC\OpenPub\Base\Models\Search
+
+
+ error
+ 57
+ No summary for method addSearchParameters()
+
+
+ error
+ 70
+ No summary for method sanitizeSearch()
+
+
+ error
+ 78
+ No summary for method perPage()
+
+
+ error
+ 10
+ No summary for property $posttype
+
+
+ error
+ 12
+ No summary for property $globalFields
+
+
+ error
+ 17
+ No summary for property $request
+
+
+ error
+ 22
+ No summary for property $whitelist
+
+
+
+
+
+
+
+
+
+ Exceptions/PropertyNotExistsException.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 7
+ No summary for class \OWC\OpenPub\Base\Exceptions\PropertyNotExistsException
+
+
+
+
+
+
+
+
+
+ Admin/Settings/SettingsServiceProvider.php
+ 3
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 7
+ No summary for class \OWC\OpenPub\Base\Admin\Settings\SettingsServiceProvider
+
+
+ error
+ 26
+ No summary for method registerSettingsPage()
+
+
+
+
+
+
+
+
+
+ Taxonomy/TaxonomyServiceProvider.php
+ 3
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 7
+ No summary for class \OWC\OpenPub\Base\Taxonomy\TaxonomyServiceProvider
+
+
+ error
+ 17
+ No summary for method register()
+
+
+
+
+
+
+
+
+
+ PostType/PostTypeServiceProvider.php
+ 3
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 7
+ No summary for class \OWC\OpenPub\Base\PostType\PostTypeServiceProvider
+
+
+ error
+ 17
+ No summary for method register()
+
+
+
+
+
+
+
+
+
+ RestAPI/ItemFields/TaxonomyField.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 8
+ No summary for class \OWC\OpenPub\Base\RestAPI\ItemFields\TaxonomyField
+
+
+
+
+
+
+
+
+
+ RestAPI/ItemFields/ConnectedField.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 8
+ No summary for class \OWC\OpenPub\Base\RestAPI\ItemFields\ConnectedField
+
+
+
+
+
+
+
+
+
+ RestAPI/ItemFields/NotesField.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 8
+ No summary for class \OWC\OpenPub\Base\RestAPI\ItemFields\NotesField
+
+
+
+
+
+
+
+
+
+ RestAPI/ItemFields/DownloadsField.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 8
+ No summary for class \OWC\OpenPub\Base\RestAPI\ItemFields\DownloadsField
+
+
+
+
+
+
+
+
+
+ RestAPI/ItemFields/SynonymsField.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 8
+ No summary for class \OWC\OpenPub\Base\RestAPI\ItemFields\SynonymsField
+
+
+
+
+
+
+
+
+
+ RestAPI/ItemFields/FeaturedImageField.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 8
+ No summary for class \OWC\OpenPub\Base\RestAPI\ItemFields\FeaturedImageField
+
+
+
+
+
+
+
+
+
+ RestAPI/ItemFields/LinksField.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 8
+ No summary for class \OWC\OpenPub\Base\RestAPI\ItemFields\LinksField
+
+
+
+
+
+
+
+
+
+ RestAPI/RestAPIServiceProvider.php
+ 3
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 9
+ No summary for class \OWC\OpenPub\Base\RestAPI\RestAPIServiceProvider
+
+
+ error
+ 12
+ No summary for property $namespace
+
+
+
+
+
+
+
+
+
+ RestAPI/Controllers/SearchController.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 8
+ No summary for class \OWC\OpenPub\Base\RestAPI\Controllers\SearchController
+
+
+
+
+
+
+
+
+
+ RestAPI/Controllers/BaseController.php
+ 4
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 9
+ No summary for class \OWC\OpenPub\Base\RestAPI\Controllers\BaseController
+
+
+ error
+ 19
+ Argument $plugin is missing from the Docblock of __construct
+
+
+ error
+ 19
+ No summary for method __construct()
+
+
+
+
+
+
+
+
+
+ RestAPI/Controllers/ItemController.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 11
+ No summary for class \OWC\OpenPub\Base\RestAPI\Controllers\ItemController
+
+
+
+
+
+
+
+
+
+ Redirect/RedirectServiceProvider.php
+ 3
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 7
+ No summary for class \OWC\OpenPub\Base\Redirect\RedirectServiceProvider
+
+
+ error
+ 10
+ No summary for method register()
+
+
+
+
+
+
+
+
+
+ ElasticPress/ElasticPressServiceProvider.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 9
+ No summary for class \OWC\OpenPub\Base\ElasticPress\ElasticPressServiceProvider
+
+
+
+
+
+
+
+
+
+ ElasticPress/ElasticPress.php
+ 24
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 7
+ No summary for class \OWC\OpenPub\Base\ElasticPress\ElasticPress
+
+
+ error
+ 24
+ Argument $item is missing from the Docblock of __construct
+
+
+ error
+ 24
+ Name of argument $item does not match with the DocBlock's name $config in __construct()
+
+
+ error
+ 24
+ The type hint of the argument is incorrect for the type definition of the @param tag with argument $item in __construct()
+
+
+ error
+ 38
+ No summary for method setFilters()
+
+
+ error
+ 135
+ Argument $postTypes is missing from the Docblock of setIndexables
+
+
+ error
+ 143
+ Argument $args is missing from the Docblock of setIndexPostsArgs
+
+
+ error
+ 151
+ Argument $statuses is missing from the Docblock of setStatuses
+
+
+ error
+ 163
+ Argument $language is missing from the Docblock of setLanguage
+
+
+ error
+ 163
+ Argument $analyzer is missing from the Docblock of setLanguage
+
+
+ error
+ 171
+ Argument $item is missing from the Docblock of setPostSyncArgs
+
+
+ error
+ 171
+ Argument $postID is missing from the Docblock of setPostSyncArgs
+
+
+ error
+ 265
+ No summary for method getEnvironmentVariable()
+
+
+ error
+ 273
+ No summary for method getSettings()
+
+
+ error
+ 278
+ Argument $args is missing from the Docblock of setSearchArgs
+
+
+ error
+ 278
+ Argument $scope is missing from the Docblock of setSearchArgs
+
+
+ error
+ 278
+ Argument $query_args is missing from the Docblock of setSearchArgs
+
+
+ error
+ 278
+ No summary for method setSearchArgs()
+
+
+ error
+ 289
+ No summary for method setSearchFields()
+
+
+ error
+ 306
+ No summary for method setRequestHost()
+
+
+ error
+ 320
+ No summary for method setRequestUrl()
+
+
+ error
+ 12
+ No summary for property $config
+
+
+ error
+ 17
+ No summary for property $item
+
+
+
+
+
+
+
+
+
+ Support/CreatesFields.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 8
+ No summary for class \OWC\OpenPub\Base\Support\CreatesFields
+
+
+
+
+
+
+
+
+
+ PostsToPosts/PostsToPostsServiceProvider.php
+ 5
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 7
+ No summary for class \OWC\OpenPub\Base\PostsToPosts\PostsToPostsServiceProvider
+
+
+ error
+ 21
+ No summary for method register()
+
+
+ error
+ 75
+ Argument $args is missing from the Docblock of filterP2PConnectableArgs
+
+
+ error
+ 13
+ No summary for property $connectionDefaults
+
+
+
+
+
+
+
+
+
+ Foundation/DependencyChecker.php
+ 3
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Foundation\DependencyChecker
+
+
+ error
+ 93
+ No summary for method checkClass()
+
+
+
+
+
+
+
+
+
+ Foundation/Plugin.php
+ 5
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Foundation\Plugin
+
+
+ error
+ 44
+ Argument $rootPath is missing from the Docblock of __construct
+
+
+ error
+ 44
+ No summary for method __construct()
+
+
+ error
+ 100
+ No summary for method filterPlugin()
+
+
+
+
+
+
+
+
+
+ Foundation/ServiceProvider.php
+ 4
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Foundation\ServiceProvider
+
+
+ error
+ 15
+ Argument $plugin is missing from the Docblock of __construct
+
+
+ error
+ 15
+ No summary for method __construct()
+
+
+
+
+
+
+
+
+
+ Foundation/Loader.php
+ 2
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Foundation\Loader
+
+
+
+
+
+
+
+
+
+ Foundation/Config.php
+ 4
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Foundation\Config
+
+
+ error
+ 146
+ No summary for method setProtectedNodes()
+
+
+ error
+ 154
+ No summary for method scanDirectory()
+
+
+
+
+
+
+
+
+
+ Foundation/Hooks.php
+ 13
+
+
+
+
+
+ Type
+ Line
+ Description
+
+
+
+
+ error
+ 0
+ No summary was found for this file
+
+
+ error
+ 5
+ No summary for class \OWC\OpenPub\Base\Foundation\Hooks
+
+
+ error
+ 20
+ Argument $plugin is missing from the Docblock of pluginActivated
+
+
+ error
+ 20
+ Argument $networkActivation is missing from the Docblock of pluginActivated
+
+
+ error
+ 29
+ Argument $plugin is missing from the Docblock of pluginDeactivated
+
+
+ error
+ 29
+ Argument $networkActivation is missing from the Docblock of pluginDeactivated
+
+
+ error
+ 82
+ Argument $blogId is missing from the Docblock of activateAppOnNewBlog
+
+
+ error
+ 82
+ Argument $userId is missing from the Docblock of activateAppOnNewBlog
+
+
+ error
+ 82
+ Argument $domain is missing from the Docblock of activateAppOnNewBlog
+
+
+ error
+ 82
+ Argument $path is missing from the Docblock of activateAppOnNewBlog
+
+
+ error
+ 82
+ Argument $siteId is missing from the Docblock of activateAppOnNewBlog
+
+
+ error
+ 82
+ Argument $meta is missing from the Docblock of activateAppOnNewBlog
+
+
+ error
+ 82
+ No summary for method activateAppOnNewBlog()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/docs/reports/markers.html b/docs/reports/markers.html
new file mode 100644
index 0000000..70e8e98
--- /dev/null
+++ b/docs/reports/markers.html
@@ -0,0 +1,161 @@
+
+
+
+
+
+ » Markers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
No markers have been found in this project.
+
+
+
+
+
+
+
+
+
+
+
+
+ Documentation is powered by phpDocumentor and authored
+ on October 4th, 2018 at 13:17.
+
+
+
+
+
+
+
+
diff --git a/src/Base/Models/Item.php b/src/Base/Models/Item.php
index 974723e..8fa95ed 100644
--- a/src/Base/Models/Item.php
+++ b/src/Base/Models/Item.php
@@ -38,13 +38,13 @@ protected function addExpirationParameters()
'key' => '_owc_openpub_expirationdate',
'value' => date("Y-m-d H:I"),
'compare' => '>=',
- 'type' => 'DATETIME'
+ 'type' => 'DATETIME',
],
[
'key' => '_owc_openpub_expirationdate',
- 'compare' => 'NOT EXISTS'
- ]
- ]
+ 'compare' => 'NOT EXISTS',
+ ],
+ ],
];
}
-}
\ No newline at end of file
+}
diff --git a/src/Base/Models/Model.php b/src/Base/Models/Model.php
index c07ccb3..dcf7313 100644
--- a/src/Base/Models/Model.php
+++ b/src/Base/Models/Model.php
@@ -62,7 +62,7 @@ public function __construct()
* the abstract Model class.
*/
$reflect = new \ReflectionClass(static::class);
- if ( $reflect->getProperty('globalFields')->class == __CLASS__ ) {
+ if ($reflect->getProperty('globalFields')->class == __CLASS__) {
throw new PropertyNotExistsException(sprintf('Property $globalFields must be present on derived class %s.',
static::class));
}
@@ -76,7 +76,7 @@ public function __construct()
public function all(): array
{
$args = array_merge($this->queryArgs, [
- 'post_type' => [$this->posttype]
+ 'post_type' => [$this->posttype],
]);
$this->query = new WP_Query($args);
@@ -96,12 +96,12 @@ public function find(int $id)
$args = array_merge($this->queryArgs, [
'p' => $id,
- 'post_type' => [$this->posttype]
+ 'post_type' => [$this->posttype],
]);
$this->query = new WP_Query($args);
- if ( empty($this->getQuery()->posts) ) {
+ if (empty($this->getQuery()->posts)) {
return null;
}
@@ -132,6 +132,16 @@ public function query(array $args)
return $this;
}
+ /**
+ * Returns the query args.
+ *
+ * @return array
+ */
+ public function getQueryArgs()
+ {
+ return $this->queryArgs;
+ }
+
/**
* Hide a particular key from the request.
*
@@ -156,7 +166,7 @@ public function hide(array $keys)
*/
public function addField(string $key, CreatesFields $creator)
{
- $this->fields[ $key ] = $creator;
+ $this->fields[$key] = $creator;
return $this;
}
@@ -175,7 +185,7 @@ public static function addGlobalField(string $key, CreatesFields $creator, Closu
static::$globalFields[] = [
'key' => $key,
'creator' => $creator,
- 'conditional' => $conditional
+ 'conditional' => $conditional,
];
}
@@ -186,8 +196,8 @@ public static function addGlobalField(string $key, CreatesFields $creator, Closu
*/
public static function getGlobalFields(): array
{
- uasort(static::$globalFields, function($a, $b) {
- return ( $a['key'] < $b['key'] ) ? - 1 : 1;
+ uasort(static::$globalFields, function ($a, $b) {
+ return ($a['key'] < $b['key']) ? -1 : 1;
});
return static::$globalFields;
@@ -207,7 +217,7 @@ public function transform(WP_Post $post)
'title' => $post->post_title,
'content' => apply_filters('the_content', $post->post_content),
'excerpt' => $post->post_excerpt,
- 'date' => $post->post_date
+ 'date' => $post->post_date,
];
$data = $this->assignFields($data, $post);
@@ -226,25 +236,25 @@ public function transform(WP_Post $post)
protected function assignFields(array $data, WP_Post $post)
{
// Assign global fields.
- foreach ( static::getGlobalFields() as $field ) {
- if ( in_array($field['key'], $this->hidden) ) {
+ foreach (static::getGlobalFields() as $field) {
+ if (in_array($field['key'], $this->hidden)) {
continue;
}
- if ( is_null($field['conditional']) ) {
+ if (is_null($field['conditional'])) {
// If the field has no conditional set we will add it
- $data[ $field['key'] ] = $field['creator']->create($post);
+ $data[$field['key']] = $field['creator']->create($post);
} else {
// Check if the conditional matches.
- if ( $field['conditional']($post) ) {
- $data[ $field['key'] ] = $field['creator']->create($post);
+ if ($field['conditional']($post)) {
+ $data[$field['key']] = $field['creator']->create($post);
}
}
}
// Assign dynamic fields.
- foreach ( $this->fields as $key => $creator ) {
- $data[ $key ] = $creator->create($post);
+ foreach ($this->fields as $key => $creator) {
+ $data[$key] = $creator->create($post);
}
return $data;
diff --git a/src/Base/RestAPI/Controllers/ItemController.php b/src/Base/RestAPI/Controllers/ItemController.php
index 92b942f..c398bcd 100644
--- a/src/Base/RestAPI/Controllers/ItemController.php
+++ b/src/Base/RestAPI/Controllers/ItemController.php
@@ -4,6 +4,8 @@
use OWC\OpenPub\Base\Models\Item;
use WP_Error;
+use WP_Post;
+use WP_Query;
use WP_REST_Request;
class ItemController extends BaseController
@@ -20,7 +22,7 @@ class ItemController extends BaseController
*/
public function getItems(WP_REST_Request $request)
{
- $items = ( new Item() )
+ $items = (new Item())
->query(apply_filters('owc/openpub/rest-api/items/query', $this->getPaginatorParams($request)));
$data = $items->all();
@@ -40,19 +42,60 @@ public function getItems(WP_REST_Request $request)
*/
public function getItem(WP_REST_Request $request)
{
- $id = (int)$request->get_param('id');
+ $id = (int) $request->get_param('id');
- $item = ( new Item )
+ $item = (new Item)
->query(apply_filters('owc/openpub/rest-api/items/query/single', []))
->find($id);
- if ( ! $item ) {
+ if (!$item) {
return new WP_Error('no_item_found', sprintf('Item with ID "%d" not found (anymore)', $id), [
- 'status' => 404
+ 'status' => 404,
]);
}
+ $item['related'] = $this->addRelated($item);
+
return $item;
}
-}
\ No newline at end of file
+ /**
+ * Get related items.
+ *
+ * @param array $item
+ *
+ * @return array
+ */
+ protected function addRelated($item)
+ {
+ $items = (new Item())
+ ->query([
+ 'post__not_in' => [$item['id']],
+ 'posts_per_page' => 10,
+ 'post_status' => 'publish',
+ 'post_type' => 'openpub-item',
+ ]);
+ $query = new WP_Query($items->getQueryArgs());
+ return array_map([$this, 'transform'], $query->posts);
+ }
+
+ /**
+ * Transform a single WP_Post item.
+ *
+ * @param WP_Post $post
+ *
+ * @return array
+ */
+ public function transform(WP_Post $post)
+ {
+ $data = [
+ 'id' => $post->ID,
+ 'title' => $post->post_title,
+ 'content' => apply_filters('the_content', $post->post_content),
+ 'excerpt' => $post->post_excerpt,
+ 'date' => $post->post_date,
+ ];
+
+ return $data;
+ }
+}