diff --git a/.gitignore b/.gitignore index ad54785..3c9fad3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea **/*.scssc node_modules +vendor/* \ No newline at end of file diff --git a/assets/css/theme-specific/dunamis.css b/assets/css/theme-specific/dunamis.css new file mode 100644 index 0000000..f5a09b6 --- /dev/null +++ b/assets/css/theme-specific/dunamis.css @@ -0,0 +1,3 @@ +article.wpfc-sermon { + margin-bottom: 1rem; +} diff --git a/assets/css/theme-specific/twentynineteen.css b/assets/css/theme-specific/twentynineteen.css new file mode 100644 index 0000000..298f712 --- /dev/null +++ b/assets/css/theme-specific/twentynineteen.css @@ -0,0 +1,3 @@ +.smpro-items { + margin: calc(3 * 1rem) calc(10% + 60px) calc(1rem / 2); +} \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..be98482 --- /dev/null +++ b/composer.json @@ -0,0 +1,9 @@ +{ + "require-dev": { + "squizlabs/php_codesniffer": "3.*", + "dealerdirect/phpcodesniffer-composer-installer": "*", + "phpcompatibility/php-compatibility": "*", + "wp-coding-standards/wpcs": "*", + "phpunit/phpunit": "^7" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..7fff88d --- /dev/null +++ b/composer.lock @@ -0,0 +1,1703 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "content-hash": "52d103ed3b3256f9c32d8d6a8aef6eb2", + "packages": [], + "packages-dev": [ + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v0.5.0", + "source": { + "type": "git", + "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", + "reference": "e749410375ff6fb7a040a68878c656c2e610b132" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/e749410375ff6fb7a040a68878c656c2e610b132", + "reference": "e749410375ff6fb7a040a68878c656c2e610b132", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": "^5.3|^7", + "squizlabs/php_codesniffer": "^2|^3" + }, + "require-dev": { + "composer/composer": "*", + "phpcompatibility/php-compatibility": "^9.0", + "sensiolabs/security-checker": "^4.1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "time": "2018-10-26T13:21:45+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "^6.2.3", + "squizlabs/php_codesniffer": "^3.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "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": "myclabs/deep-copy", + "version": "1.8.1", + "source": { + "type": "git", + "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": "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/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "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": "phpcompatibility/php-compatibility", + "version": "9.1.1", + "source": { + "type": "git", + "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", + "reference": "2b63c5d284ab8857f7b1d5c240ddb507a6b2293c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/2b63c5d284ab8857f7b1d5c240ddb507a6b2293c", + "reference": "2b63c5d284ab8857f7b1d5c240ddb507a6b2293c", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" + }, + "conflict": { + "squizlabs/php_codesniffer": "2.6.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" + }, + "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." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Contributors", + "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" + }, + { + "name": "Wim Godden", + "homepage": "https://github.com/wimg", + "role": "lead" + }, + { + "name": "Juliette Reinders Folmer", + "homepage": "https://github.com/jrfnl", + "role": "lead" + } + ], + "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", + "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", + "keywords": [ + "compatibility", + "phpcs", + "standards" + ], + "time": "2018-12-30T23:16:27+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "4.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08", + "shasum": "" + }, + "require": { + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "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" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "time": "2017-07-14T14:27:02+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.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "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 || ^4.0", + "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.1-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-31T16:06:48+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.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", + "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-10-30T05:52:18+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "7.5.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "c23d78776ad415d5506e0679723cb461d71f488f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c23d78776ad415d5506e0679723cb461d71f488f", + "reference": "c23d78776ad415d5506e0679723cb461d71f488f", + "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": "^4.0", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.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.5-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-12-12T07:20:32+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": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/febd209a219cea7b56ad799b30ebbea34b71eb8f", + "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-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": "2018-11-25T09:31:21+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": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "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": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2018-10-04T04:07:39+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": "squizlabs/php_codesniffer", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "379deb987e26c7cd103a7b387aea178baec96e48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/379deb987e26c7cd103a7b387aea178baec96e48", + "reference": "379deb987e26c7cd103a7b387aea178baec96e48", + "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-12-19T23:57:18+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "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" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "time": "2018-08-06T14:22:27+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^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" + } + ], + "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": "webmozart/assert", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2018-12-25T11:19:39+00:00" + }, + { + "name": "wp-coding-standards/wpcs", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git", + "reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WordPress-Coding-Standards/WordPress-Coding-Standards/zipball/f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c", + "reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2" + }, + "require-dev": { + "phpcompatibility/php-compatibility": "^9.0" + }, + "suggest": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically." + }, + "type": "phpcodesniffer-standard", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Contributors", + "homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions", + "keywords": [ + "phpcs", + "standards", + "wordpress" + ], + "time": "2018-12-18T09:43:51+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} diff --git a/includes/class-sm-post-types.php b/includes/class-sm-post-types.php index 0355123..a22709c 100644 --- a/includes/class-sm-post-types.php +++ b/includes/class-sm-post-types.php @@ -50,161 +50,181 @@ public static function register_taxonomies() { 'assign_terms' => 'manage_wpfc_categories', ); - register_taxonomy( 'wpfc_preacher', + register_taxonomy( + 'wpfc_preacher', apply_filters( 'sm_taxonomy_objects_wpfc_preacher', array( 'wpfc_sermon' ) ), - apply_filters( 'sm_taxonomy_args_wpfc_preacher', array( - 'hierarchical' => false, - 'label' => ucwords( $preacher_label ), - 'labels' => array( - 'name' => ucwords( $preacher_label_plural ), - 'singular_name' => ucwords( $preacher_label ), - 'menu_name' => ucwords( $preacher_label_plural ), - /* translators: Preachers */ - 'search_items' => wp_sprintf( __( 'Search %s', 'sermon-manager-for-wordpress' ), $preacher_label_plural ), - /* translators: Preachers */ - 'all_items' => wp_sprintf( __( 'All %s', 'sermon-manager-for-wordpress' ), $preacher_label_plural ), - 'parent_item' => null, - 'parent_item_colon' => null, - /* translators: Preachers */ - 'edit_item' => wp_sprintf( __( 'Edit %s', 'sermon-manager-for-wordpress' ), $preacher_label ), - /* translators: Preachers */ - 'update_item' => wp_sprintf( __( 'Update %s', 'sermon-manager-for-wordpress' ), $preacher_label ), - /* translators: Preachers */ - 'add_new_item' => wp_sprintf( __( 'Add new %s', 'sermon-manager-for-wordpress' ), $preacher_label ), - /* translators: Preachers */ - 'new_item_name' => wp_sprintf( __( 'New %s name', 'sermon-manager-for-wordpress' ), $preacher_label ), - /* translators: Preachers */ - 'not_found' => wp_sprintf( __( 'No %s found', 'sermon-manager-for-wordpress' ), $preacher_label ), - ), - 'show_ui' => true, - 'query_var' => true, - 'show_in_rest' => true, - 'rewrite' => array( - 'slug' => $permalinks['wpfc_preacher'], - 'with_front' => false, - ), - 'capabilities' => $capabilities, - ) ) + apply_filters( + 'sm_taxonomy_args_wpfc_preacher', + array( + 'hierarchical' => false, + 'label' => ucwords( $preacher_label ), + 'labels' => array( + 'name' => ucwords( $preacher_label_plural ), + 'singular_name' => ucwords( $preacher_label ), + 'menu_name' => ucwords( $preacher_label_plural ), + /* translators: Preachers */ + 'search_items' => wp_sprintf( __( 'Search %s', 'sermon-manager-for-wordpress' ), $preacher_label_plural ), + /* translators: Preachers */ + 'all_items' => wp_sprintf( __( 'All %s', 'sermon-manager-for-wordpress' ), $preacher_label_plural ), + 'parent_item' => null, + 'parent_item_colon' => null, + /* translators: Preachers */ + 'edit_item' => wp_sprintf( __( 'Edit %s', 'sermon-manager-for-wordpress' ), $preacher_label ), + /* translators: Preachers */ + 'update_item' => wp_sprintf( __( 'Update %s', 'sermon-manager-for-wordpress' ), $preacher_label ), + /* translators: Preachers */ + 'add_new_item' => wp_sprintf( __( 'Add new %s', 'sermon-manager-for-wordpress' ), $preacher_label ), + /* translators: Preachers */ + 'new_item_name' => wp_sprintf( __( 'New %s name', 'sermon-manager-for-wordpress' ), $preacher_label ), + /* translators: Preachers */ + 'not_found' => wp_sprintf( __( 'No %s found', 'sermon-manager-for-wordpress' ), $preacher_label ), + ), + 'show_ui' => true, + 'query_var' => true, + 'show_in_rest' => true, + 'rewrite' => array( + 'slug' => $permalinks['wpfc_preacher'], + 'with_front' => false, + ), + 'capabilities' => $capabilities, + ) + ) ); - register_taxonomy( 'wpfc_sermon_series', + register_taxonomy( + 'wpfc_sermon_series', apply_filters( 'sm_taxonomy_objects_wpfc_sermon_series', array( 'wpfc_sermon' ) ), - apply_filters( 'sm_taxonomy_args_wpfc_sermon_series', array( - 'hierarchical' => false, - 'label' => __( 'Series', 'sermon-manager-for-wordpress' ), - 'labels' => array( - 'name' => __( 'Series', 'sermon-manager-for-wordpress' ), - 'singular_name' => __( 'Series', 'sermon-manager-for-wordpress' ), - 'menu_name' => _x( 'Series', 'menu', 'sermon-manager-for-wordpress' ), - 'search_items' => __( 'Search series', 'sermon-manager-for-wordpress' ), - 'all_items' => __( 'All series', 'sermon-manager-for-wordpress' ), - 'parent_item' => null, - 'parent_item_colon' => null, - 'edit_item' => __( 'Edit series', 'sermon-manager-for-wordpress' ), - 'update_item' => __( 'Update series', 'sermon-manager-for-wordpress' ), - 'add_new_item' => __( 'Add new series', 'sermon-manager-for-wordpress' ), - 'new_item_name' => __( 'New series name', 'sermon-manager-for-wordpress' ), - 'not_found' => __( 'No series found', 'sermon-manager-for-wordpress' ), - ), - 'show_ui' => true, - 'query_var' => true, - 'show_in_rest' => true, - 'rewrite' => array( - 'slug' => $permalinks['wpfc_sermon_series'], - 'with_front' => false, - ), - 'capabilities' => $capabilities, - ) ) + apply_filters( + 'sm_taxonomy_args_wpfc_sermon_series', + array( + 'hierarchical' => false, + 'label' => __( 'Series', 'sermon-manager-for-wordpress' ), + 'labels' => array( + 'name' => __( 'Series', 'sermon-manager-for-wordpress' ), + 'singular_name' => __( 'Series', 'sermon-manager-for-wordpress' ), + 'menu_name' => _x( 'Series', 'menu', 'sermon-manager-for-wordpress' ), + 'search_items' => __( 'Search series', 'sermon-manager-for-wordpress' ), + 'all_items' => __( 'All series', 'sermon-manager-for-wordpress' ), + 'parent_item' => null, + 'parent_item_colon' => null, + 'edit_item' => __( 'Edit series', 'sermon-manager-for-wordpress' ), + 'update_item' => __( 'Update series', 'sermon-manager-for-wordpress' ), + 'add_new_item' => __( 'Add new series', 'sermon-manager-for-wordpress' ), + 'new_item_name' => __( 'New series name', 'sermon-manager-for-wordpress' ), + 'not_found' => __( 'No series found', 'sermon-manager-for-wordpress' ), + ), + 'show_ui' => true, + 'query_var' => true, + 'show_in_rest' => true, + 'rewrite' => array( + 'slug' => $permalinks['wpfc_sermon_series'], + 'with_front' => false, + ), + 'capabilities' => $capabilities, + ) + ) ); - register_taxonomy( 'wpfc_sermon_topics', + register_taxonomy( + 'wpfc_sermon_topics', apply_filters( 'sm_taxonomy_objects_wpfc_sermon_topics', array( 'wpfc_sermon' ) ), - apply_filters( 'sm_taxonomy_args_wpfc_sermon_topics', array( - 'hierarchical' => false, - 'label' => __( 'Topics', 'sermon-manager-for-wordpress' ), - 'labels' => array( - 'name' => __( 'Topics', 'sermon-manager-for-wordpress' ), - 'singular_name' => __( 'Topic', 'sermon-manager-for-wordpress' ), - 'menu_name' => _x( 'Topics', 'menu', 'sermon-manager-for-wordpress' ), - 'search_items' => __( 'Search topics', 'sermon-manager-for-wordpress' ), - 'all_items' => __( 'All topics', 'sermon-manager-for-wordpress' ), - 'parent_item' => null, - 'parent_item_colon' => null, - 'edit_item' => __( 'Edit topic', 'sermon-manager-for-wordpress' ), - 'update_item' => __( 'Update topic', 'sermon-manager-for-wordpress' ), - 'add_new_item' => __( 'Add new topic', 'sermon-manager-for-wordpress' ), - 'new_item_name' => __( 'New topic name', 'sermon-manager-for-wordpress' ), - 'not_found' => __( 'No topics found', 'sermon-manager-for-wordpress' ), - ), - 'show_ui' => true, - 'query_var' => true, - 'show_in_rest' => true, - 'rewrite' => array( - 'slug' => $permalinks['wpfc_sermon_topics'], - 'with_front' => false, - ), - 'capabilities' => $capabilities, - ) ) + apply_filters( + 'sm_taxonomy_args_wpfc_sermon_topics', + array( + 'hierarchical' => false, + 'label' => __( 'Topics', 'sermon-manager-for-wordpress' ), + 'labels' => array( + 'name' => __( 'Topics', 'sermon-manager-for-wordpress' ), + 'singular_name' => __( 'Topic', 'sermon-manager-for-wordpress' ), + 'menu_name' => _x( 'Topics', 'menu', 'sermon-manager-for-wordpress' ), + 'search_items' => __( 'Search topics', 'sermon-manager-for-wordpress' ), + 'all_items' => __( 'All topics', 'sermon-manager-for-wordpress' ), + 'parent_item' => null, + 'parent_item_colon' => null, + 'edit_item' => __( 'Edit topic', 'sermon-manager-for-wordpress' ), + 'update_item' => __( 'Update topic', 'sermon-manager-for-wordpress' ), + 'add_new_item' => __( 'Add new topic', 'sermon-manager-for-wordpress' ), + 'new_item_name' => __( 'New topic name', 'sermon-manager-for-wordpress' ), + 'not_found' => __( 'No topics found', 'sermon-manager-for-wordpress' ), + ), + 'show_ui' => true, + 'query_var' => true, + 'show_in_rest' => true, + 'rewrite' => array( + 'slug' => $permalinks['wpfc_sermon_topics'], + 'with_front' => false, + ), + 'capabilities' => $capabilities, + ) + ) ); - register_taxonomy( 'wpfc_bible_book', + register_taxonomy( + 'wpfc_bible_book', apply_filters( 'sm_taxonomy_objects_wpfc_bible_book', array( 'wpfc_sermon' ) ), - apply_filters( 'sm_taxonomy_args_wpfc_bible_book', array( - 'hierarchical' => false, - 'label' => __( 'Books', 'sermon-manager-for-wordpress' ), - 'labels' => array( - 'name' => __( 'Bible books', 'sermon-manager-for-wordpress' ), - 'singular_name' => __( 'Book', 'sermon-manager-for-wordpress' ), - 'menu_name' => _x( 'Books', 'menu', 'sermon-manager-for-wordpress' ), - 'search_items' => __( 'Search books', 'sermon-manager-for-wordpress' ), - 'all_items' => __( 'All books', 'sermon-manager-for-wordpress' ), - 'parent_item' => null, - 'parent_item_colon' => null, - 'edit_item' => __( 'Edit book', 'sermon-manager-for-wordpress' ), - 'update_item' => __( 'Update book', 'sermon-manager-for-wordpress' ), - 'add_new_item' => __( 'Add new book', 'sermon-manager-for-wordpress' ), - 'new_item_name' => __( 'New book name', 'sermon-manager-for-wordpress' ), - 'not_found' => __( 'No books found', 'sermon-manager-for-wordpress' ), - ), - 'show_ui' => true, - 'query_var' => true, - 'show_in_rest' => true, - 'rewrite' => array( - 'slug' => $permalinks['wpfc_bible_book'], - 'with_front' => false, - ), - 'capabilities' => $capabilities, - ) ) + apply_filters( + 'sm_taxonomy_args_wpfc_bible_book', + array( + 'hierarchical' => false, + 'label' => __( 'Books', 'sermon-manager-for-wordpress' ), + 'labels' => array( + 'name' => __( 'Bible books', 'sermon-manager-for-wordpress' ), + 'singular_name' => __( 'Book', 'sermon-manager-for-wordpress' ), + 'menu_name' => _x( 'Books', 'menu', 'sermon-manager-for-wordpress' ), + 'search_items' => __( 'Search books', 'sermon-manager-for-wordpress' ), + 'all_items' => __( 'All books', 'sermon-manager-for-wordpress' ), + 'parent_item' => null, + 'parent_item_colon' => null, + 'edit_item' => __( 'Edit book', 'sermon-manager-for-wordpress' ), + 'update_item' => __( 'Update book', 'sermon-manager-for-wordpress' ), + 'add_new_item' => __( 'Add new book', 'sermon-manager-for-wordpress' ), + 'new_item_name' => __( 'New book name', 'sermon-manager-for-wordpress' ), + 'not_found' => __( 'No books found', 'sermon-manager-for-wordpress' ), + ), + 'show_ui' => true, + 'query_var' => true, + 'show_in_rest' => true, + 'rewrite' => array( + 'slug' => $permalinks['wpfc_bible_book'], + 'with_front' => false, + ), + 'capabilities' => $capabilities, + ) + ) ); - register_taxonomy( 'wpfc_service_type', + register_taxonomy( + 'wpfc_service_type', apply_filters( 'sm_taxonomy_objects_wpfc_service_type', array( 'wpfc_sermon' ) ), - apply_filters( 'sm_taxonomy_args_wpfc_service_type', array( - 'hierarchical' => false, - 'label' => __( 'Service Types', 'sermon-manager-for-wordpress' ), - 'labels' => array( - 'name' => __( 'Service Types', 'sermon-manager-for-wordpress' ), - 'singular_name' => __( 'Service Type', 'sermon-manager-for-wordpress' ), - 'menu_name' => _x( 'Service Types', 'menu', 'sermon-manager-for-wordpress' ), - 'search_items' => __( 'Search service types', 'sermon-manager-for-wordpress' ), - 'all_items' => __( 'All service types', 'sermon-manager-for-wordpress' ), - 'parent_item' => null, - 'parent_item_colon' => null, - 'edit_item' => __( 'Edit service type', 'sermon-manager-for-wordpress' ), - 'update_item' => __( 'Update service type', 'sermon-manager-for-wordpress' ), - 'add_new_item' => __( 'Add new service type', 'sermon-manager-for-wordpress' ), - 'new_item_name' => __( 'New service type name', 'sermon-manager-for-wordpress' ), - 'not_found' => __( 'No service types found', 'sermon-manager-for-wordpress' ), - ), - 'show_ui' => true, - 'query_var' => true, - 'show_in_rest' => true, - 'rewrite' => array( - 'slug' => $permalinks['wpfc_service_type'], - 'with_front' => false, - ), - 'capabilities' => $capabilities, - ) ) + apply_filters( + 'sm_taxonomy_args_wpfc_service_type', + array( + 'hierarchical' => false, + 'label' => __( 'Service Types', 'sermon-manager-for-wordpress' ), + 'labels' => array( + 'name' => __( 'Service Types', 'sermon-manager-for-wordpress' ), + 'singular_name' => __( 'Service Type', 'sermon-manager-for-wordpress' ), + 'menu_name' => _x( 'Service Types', 'menu', 'sermon-manager-for-wordpress' ), + 'search_items' => __( 'Search service types', 'sermon-manager-for-wordpress' ), + 'all_items' => __( 'All service types', 'sermon-manager-for-wordpress' ), + 'parent_item' => null, + 'parent_item_colon' => null, + 'edit_item' => __( 'Edit service type', 'sermon-manager-for-wordpress' ), + 'update_item' => __( 'Update service type', 'sermon-manager-for-wordpress' ), + 'add_new_item' => __( 'Add new service type', 'sermon-manager-for-wordpress' ), + 'new_item_name' => __( 'New service type name', 'sermon-manager-for-wordpress' ), + 'not_found' => __( 'No service types found', 'sermon-manager-for-wordpress' ), + ), + 'show_ui' => true, + 'query_var' => true, + 'show_in_rest' => true, + 'rewrite' => array( + 'slug' => $permalinks['wpfc_service_type'], + 'with_front' => false, + ), + 'capabilities' => $capabilities, + ) + ) ); do_action( 'sm_after_register_taxonomy' ); @@ -222,65 +242,72 @@ public static function register_post_types() { $permalinks = sm_get_permalink_structure(); - register_post_type( 'wpfc_sermon', apply_filters( 'sm_register_post_type_wpfc_sermon', array( - 'labels' => array( - 'name' => __( 'Sermons', 'sermon-manager-for-wordpress' ), - 'singular_name' => __( 'Sermon', 'sermon-manager-for-wordpress' ), - 'all_items' => __( 'Sermons', 'sermon-manager-for-wordpress' ), - 'menu_name' => _x( 'Sermons', 'menu', 'sermon-manager-for-wordpress' ), - 'add_new' => __( 'Add New', 'sermon-manager-for-wordpress' ), - 'add_new_item' => __( 'Add new sermon', 'sermon-manager-for-wordpress' ), - 'edit' => __( 'Edit', 'sermon-manager-for-wordpress' ), - 'edit_item' => __( 'Edit sermon', 'sermon-manager-for-wordpress' ), - 'new_item' => __( 'New sermon', 'sermon-manager-for-wordpress' ), - 'view' => __( 'View sermon', 'sermon-manager-for-wordpress' ), - 'view_item' => __( 'View sermon', 'sermon-manager-for-wordpress' ), - 'search_items' => __( 'Search sermon', 'sermon-manager-for-wordpress' ), - 'not_found' => __( 'No sermons found', 'sermon-manager-for-wordpress' ), - 'not_found_in_trash' => __( 'No sermons found in trash', 'sermon-manager-for-wordpress' ), - 'featured_image' => __( 'Sermon image', 'sermon-manager-for-wordpress' ), - 'set_featured_image' => __( 'Set sermon image', 'sermon-manager-for-wordpress' ), - 'remove_featured_image' => __( 'Remove sermon image', 'sermon-manager-for-wordpress' ), - 'use_featured_image' => __( 'Use as sermon image', 'sermon-manager-for-wordpress' ), - 'insert_into_item' => __( 'Insert to sermon', 'sermon-manager-for-wordpress' ), - 'uploaded_to_this_item' => __( 'Uploaded to this sermon', 'sermon-manager-for-wordpress' ), - 'filter_items_list' => __( 'Filter sermon', 'sermon-manager-for-wordpress' ), - 'items_list_navigation' => __( 'Sermon navigation', 'sermon-manager-for-wordpress' ), - 'items_list' => __( 'Sermon list', 'sermon-manager-for-wordpress' ), - ), - 'public' => true, - 'show_ui' => true, - 'capability_type' => 'wpfc_sermon', - 'capabilities' => array( - 'manage_wpfc_categories' => 'manage_wpfc_categories', - 'manage_wpfc_sm_settings' => 'manage_wpfc_sm_settings', - ), - 'map_meta_cap' => true, - 'publicly_queryable' => true, - 'exclude_from_search' => false, - 'show_in_menu' => true, - 'menu_icon' => 'dashicons-sermon-manager', - 'hierarchical' => false, - 'rewrite' => array( - 'slug' => $permalinks['wpfc_sermon'], - 'with_front' => false, - ), - 'query_var' => true, - 'show_in_nav_menus' => true, - 'show_in_rest' => true, - 'has_archive' => true, - 'supports' => array( - 'title', - 'thumbnail', - 'publicize', - 'wpcom-markdown', - 'comments', - 'entry-views', - 'elementor', - 'excerpt', - 'revisions', - ), - ) ) ); + register_post_type( + 'wpfc_sermon', + apply_filters( + 'sm_register_post_type_wpfc_sermon', + array( + 'labels' => array( + 'name' => __( 'Sermons', 'sermon-manager-for-wordpress' ), + 'singular_name' => __( 'Sermon', 'sermon-manager-for-wordpress' ), + 'all_items' => __( 'Sermons', 'sermon-manager-for-wordpress' ), + 'menu_name' => _x( 'Sermons', 'menu', 'sermon-manager-for-wordpress' ), + 'add_new' => __( 'Add New', 'sermon-manager-for-wordpress' ), + 'add_new_item' => __( 'Add new sermon', 'sermon-manager-for-wordpress' ), + 'edit' => __( 'Edit', 'sermon-manager-for-wordpress' ), + 'edit_item' => __( 'Edit sermon', 'sermon-manager-for-wordpress' ), + 'new_item' => __( 'New sermon', 'sermon-manager-for-wordpress' ), + 'view' => __( 'View sermon', 'sermon-manager-for-wordpress' ), + 'view_item' => __( 'View sermon', 'sermon-manager-for-wordpress' ), + 'search_items' => __( 'Search sermon', 'sermon-manager-for-wordpress' ), + 'not_found' => __( 'No sermons found', 'sermon-manager-for-wordpress' ), + 'not_found_in_trash' => __( 'No sermons found in trash', 'sermon-manager-for-wordpress' ), + 'featured_image' => __( 'Sermon image', 'sermon-manager-for-wordpress' ), + 'set_featured_image' => __( 'Set sermon image', 'sermon-manager-for-wordpress' ), + 'remove_featured_image' => __( 'Remove sermon image', 'sermon-manager-for-wordpress' ), + 'use_featured_image' => __( 'Use as sermon image', 'sermon-manager-for-wordpress' ), + 'insert_into_item' => __( 'Insert to sermon', 'sermon-manager-for-wordpress' ), + 'uploaded_to_this_item' => __( 'Uploaded to this sermon', 'sermon-manager-for-wordpress' ), + 'filter_items_list' => __( 'Filter sermon', 'sermon-manager-for-wordpress' ), + 'items_list_navigation' => __( 'Sermon navigation', 'sermon-manager-for-wordpress' ), + 'items_list' => __( 'Sermon list', 'sermon-manager-for-wordpress' ), + ), + 'public' => true, + 'show_ui' => true, + 'capability_type' => 'wpfc_sermon', + 'capabilities' => array( + 'manage_wpfc_categories' => 'manage_wpfc_categories', + 'manage_wpfc_sm_settings' => 'manage_wpfc_sm_settings', + ), + 'map_meta_cap' => true, + 'publicly_queryable' => true, + 'exclude_from_search' => false, + 'show_in_menu' => true, + 'menu_icon' => 'dashicons-sermon-manager', + 'hierarchical' => false, + 'rewrite' => array( + 'slug' => $permalinks['wpfc_sermon'], + 'with_front' => false, + ), + 'query_var' => true, + 'show_in_nav_menus' => true, + 'show_in_rest' => true, + 'has_archive' => true, + 'supports' => array( + 'title', + 'thumbnail', + 'publicize', + 'wpcom-markdown', + 'comments', + 'entry-views', + 'elementor', + 'excerpt', + 'revisions', + 'author', + ), + ) + ) + ); do_action( 'sm_after_register_post_type' ); } diff --git a/includes/sm-core-functions.php b/includes/sm-core-functions.php index 010f240..1961b16 100644 --- a/includes/sm-core-functions.php +++ b/includes/sm-core-functions.php @@ -842,7 +842,7 @@ function sm_get_next_sermon( $post = null ) { * * @param int $post_ID The sermon ID. */ -function set_service_type( $post_ID ) { +function sm_set_service_type( $post_ID ) { if ( isset( $_POST['wpfc_service_type'] ) ) { $term = get_term_by( 'id', $_POST['wpfc_service_type'], 'wpfc_service_type' ); @@ -851,10 +851,28 @@ function set_service_type( $post_ID ) { } wp_set_object_terms( $post_ID, empty( $service_type ) ? null : $service_type, 'wpfc_service_type' ); + + return; + } + + $get = isset( $_GET['tax_input'] ) && isset( $_GET['tax_input']['wpfc_service_type'] ) && $_GET['tax_input']['wpfc_service_type']; + $post = isset( $_POST['tax_input'] ) && isset( $_POST['tax_input']['wpfc_service_type'] ) && $_POST['tax_input']['wpfc_service_type']; + + if ( $get || $post ) { + $field = $get ? $_GET['tax_input']['wpfc_service_type'] : $_POST['tax_input']['wpfc_service_type']; + $terms = explode( ',', $field ); + + if ( $terms ) { + $term = get_term_by( 'name', $terms[0], 'wpfc_service_type' ); + + if ( $term ) { + update_post_meta( $post_ID, 'wpfc_service_type', $term->term_id ); + } + } } } -add_action( 'save_post', 'set_service_type', 99 ); +add_action( 'save_post', 'sm_set_service_type' ); /** * Returns registered Sermon Manager's taxonomies. diff --git a/languages/sermon-manager-for-wordpress-nl_NL.mo b/languages/sermon-manager-for-wordpress-nl_NL.mo new file mode 100644 index 0000000..941235b Binary files /dev/null and b/languages/sermon-manager-for-wordpress-nl_NL.mo differ diff --git a/languages/sermon-manager-for-wordpress-nl_NL.po b/languages/sermon-manager-for-wordpress-nl_NL.po new file mode 100644 index 0000000..7d6c041 --- /dev/null +++ b/languages/sermon-manager-for-wordpress-nl_NL.po @@ -0,0 +1,1903 @@ +# Copyright (C) 2017 +# This file is distributed under the same license as the package. +msgid "" +msgstr "" +"Project-Id-Version: sermon-manager-for-wordpress\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/sermon-manager-for-wordpress\n" +"POT-Creation-Date: 2017-10-10 14:00:00+0200\n" +"PO-Revision-Date: 2018-12-23 21:39+0100\n" +"Language-Team: WP for Church\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: nl_NL\n" +"X-Poedit-Bookmarks: -1,72,-1,-1,-1,-1,-1,-1,-1,-1\n" + +#. translators: %s see msgid "View sermon", effectively View sermon +#: includes/admin-functions.php:125 +#, php-format +msgid "Sermon updated. %s" +msgstr "Preek bijgewerkt. %s" + +#: includes/admin-functions.php:125 includes/admin-functions.php:132 +#: includes/admin-functions.php:144 includes/class-sm-post-types.php:201 +#: includes/class-sm-post-types.php:202 +msgid "View sermon" +msgstr "Bekijk preek" + +#: includes/admin-functions.php:126 +msgid "Custom field updated." +msgstr "Aangepast veld bijgewerkt." + +#: includes/admin-functions.php:127 +msgid "Custom field deleted." +msgstr "Aangepast veld verwijderd." + +#: includes/admin-functions.php:128 +msgid "Sermon updated." +msgstr "Preek bijgewerkt." + +#. translators: %s date and time of the revision +#: includes/admin-functions.php:130 +#, php-format +msgid "Sermon restored to revision from %s" +msgstr "Preek hersteld van revisie %s" + +#. translators: %s see msgid "View sermon", effectively View sermon +#: includes/admin-functions.php:132 +#, php-format +msgid "Sermon published. %s" +msgstr "Preek gepubliceerd. %s" + +#: includes/admin-functions.php:133 +msgid "Sermon saved." +msgstr "Preek opgeslagen." + +#: includes/admin-functions.php:135 includes/admin-functions.php:142 +msgid "Preview sermon" +msgstr "Toon preek voor" + +#. translators: %s see msgid "Preview sermon", effectively Preview sermon +#: includes/admin-functions.php:135 +#, php-format +msgid "Sermon submitted. %s" +msgstr "Preek ingediend. %s" + +#. translators: %1$s see msgid "%1$s at %2$s", effectively at +#. translators: %2$s see msgid "Preview sermon", effectively Preview sermon +#: includes/admin-functions.php:138 +#, php-format +msgid "Sermon scheduled for: %1$s. %2$s" +msgstr "Preek gepland voor: %1$s. %2$s" + +#. translators: %1$s date +#. translators: %2$s time +#: includes/admin-functions.php:141 +#, php-format +msgid "%1$s at %2$s" +msgstr "%1$s om %2$s" + +#. translators: %s see msgid "Preview sermon", effectively Preview sermon +#: includes/admin-functions.php:144 +#, php-format +msgid "Sermon draft updated. %s" +msgstr "Preek concept bijgewerkt. %s" + +#: includes/admin-functions.php:197 +msgid "Sermon Title" +msgstr "Preek titel" + +#. Translators: %s: Preacher label (sentence case; singular) +#. translators: %s Preachers label (sentence case; plural) +#. translators: %s Preachers label (sentence case; plural) +#. translators: %s Preacher label (sentence case; singular) +#: includes/admin-functions.php:199 includes/class-sm-post-types.php:44 +#: includes/class-sm-post-types.php:47 includes/class-sm-post-types.php:49 +#, php-format +msgid "%s" +msgstr "%s" + +#: includes/admin-functions.php:200 includes/types-taxonomies.php:120 +#: includes/types-taxonomies.php:121 includes/types-taxonomies.php:122 +msgid "Sermon Series" +msgstr "Preek serie" + +#: includes/admin-functions.php:201 includes/class-sm-post-types.php:104 +#: includes/class-sm-post-types.php:106 +msgid "Topics" +msgstr "Onderwerpen" + +#: includes/admin-functions.php:202 +msgid "Views" +msgstr "Weergaven" + +#: includes/admin-functions.php:203 includes/sm-cmb-functions.php:85 +#: includes/types-taxonomies.php:301 +msgid "Date Preached" +msgstr "Datum gepredikt" + +#: includes/admin-functions.php:204 +msgid "Bible Passage" +msgstr "Bijbeltekst" + +#. translators: %s see msgid "Error:" +#: includes/admin-functions.php:222 +#, php-format +msgid "%s Can’t find sermon ID." +msgstr "%s Kan preek ID niet vinden." + +#: includes/admin-functions.php:222 includes/admin-functions.php:261 +#: includes/admin-functions.php:262 +msgid "Error:" +msgstr "Fout:" + +#. translators: %s integer count of sermons +#: includes/admin-functions.php:317 +#, php-format +msgid "%s sermon" +msgid_plural "%s sermons" +msgstr[0] "%s preek" +msgstr[1] "%s preken" + +#. translators: %s Plugin name +#: includes/class-sm-error-recovery.php:212 +#, php-format +msgid "%s encountered a fatal error and recovered successfully." +msgstr "%s er is een fatale fout opgetreden en is met succes hersteld." + +#: includes/class-sm-error-recovery.php:215 +msgid "The issue has already been submitted." +msgstr "Het probleem is al gemeld." + +#: includes/class-sm-error-recovery.php:220 +msgctxt "button" +msgid "Send an anonymous report" +msgstr "Stuur een anoniem rapport" + +#: includes/class-sm-error-recovery.php:224 +msgctxt "button" +msgid "Show error message" +msgstr "Foutmelding weergeven" + +#: includes/class-sm-error-recovery.php:227 +msgctxt "button" +msgid "Reactivate Plugin" +msgstr "Plugin opnieuw activeren" + +#: includes/class-sm-error-recovery.php:234 +msgctxt "title" +msgid "Are you sure?" +msgstr "Weet u het zeker?" + +#: includes/class-sm-error-recovery.php:236 +msgid "" +"If the issue is not fixed, website will crash. (but we will recover it again)" +msgstr "" +"Als het probleem niet is opgelost, zal de website vastlopen. (maar we zullen " +"het weer herstellen)" + +#: includes/class-sm-error-recovery.php:238 +msgctxt "title" +msgid "Optional info" +msgstr "Optionele info" + +#: includes/class-sm-error-recovery.php:240 +msgid "" +"If you have more information about the issue, please type it here (optional):" +msgstr "" +"Als u meer informatie over dit probleem hebt, kunt u deze hier typen " +"(optioneel):" + +#: includes/class-sm-error-recovery.php:242 +msgctxt "label" +msgid "Issue details" +msgstr "Probleem details" + +#: includes/class-sm-error-recovery.php:244 +msgctxt "placeholder" +msgid "Steps for how to reproduce, etc…" +msgstr "Stappen voor hoe te reproduceren, etc…" + +#: includes/class-sm-error-recovery.php:245 +msgid "Email for further contact (optional)" +msgstr "E-mail voor verder contact (optioneel)" + +#: includes/class-sm-error-recovery.php:246 +msgid "name@example.com" +msgstr "naam@voorbeeld.com" + +#: includes/class-sm-error-recovery.php:247 +msgctxt "label" +msgid "Email" +msgstr "E-mail" + +#: includes/class-sm-install.php:158 +msgid "Monthly" +msgstr "Maandelijks" + +#: includes/class-sm-install.php:173 +msgid "View Sermon Manager settings" +msgstr "Bekijk Preek Manager instellingen" + +#: includes/class-sm-install.php:191 +msgid "Premium support" +msgstr "Premium ondersteuning" + +#: includes/class-sm-install.php:191 +msgid "Visit premium customer support" +msgstr "Bezoek premium klantenondersteuning" + +#. translators: %s Preachers label (sentence case; plural) +#: includes/class-sm-post-types.php:51 +#, php-format +msgctxt "menu" +msgid "%s" +msgstr "%s" + +#. translators: %s Preachers label (lowercase; plural) +#: includes/class-sm-post-types.php:53 includes/types-taxonomies.php:96 +#, php-format +msgid "Search %s" +msgstr "Zoek %s" + +#. translators: %s Preachers label (lowercase; plural) +#: includes/class-sm-post-types.php:55 includes/types-taxonomies.php:98 +#, php-format +msgid "All %s" +msgstr "Alles %s" + +#. translators: %s Preacher label (lowercase; singular) +#: includes/class-sm-post-types.php:59 includes/types-taxonomies.php:99 +#, php-format +msgid "Edit %s" +msgstr "Bewerk %s" + +#. translators: %s Preacher label (lowercase; singular) +#: includes/class-sm-post-types.php:61 includes/types-taxonomies.php:100 +#, php-format +msgid "Update %s" +msgstr "Werk %s bij" + +#. translators: %s Preacher label (lowercase; singular) +#: includes/class-sm-post-types.php:63 includes/types-taxonomies.php:101 +#, php-format +msgid "Add new %s" +msgstr "Nieuw %s toevoegen" + +#. translators: %s Preacher label (lowercase; singular) +#: includes/class-sm-post-types.php:65 +#, php-format +msgid "New %s name" +msgstr "Nieuwe %s naam" + +#. translators: %s Preacher label (lowercase; singular) +#: includes/class-sm-post-types.php:67 +#, php-format +msgid "No %s found" +msgstr "Geen %s gevonden" + +#: includes/class-sm-post-types.php:79 includes/class-sm-post-types.php:81 +#: includes/class-sm-post-types.php:82 +msgid "Series" +msgstr "Serie" + +#: includes/class-sm-post-types.php:83 +msgctxt "menu" +msgid "Series" +msgstr "Serie" + +#: includes/class-sm-post-types.php:84 +msgid "Search series" +msgstr "Zoek preek serie" + +#: includes/class-sm-post-types.php:85 +msgid "All series" +msgstr "Alle preekseries" + +#: includes/class-sm-post-types.php:88 +msgid "Edit series" +msgstr "Bewerk preekserie" + +#: includes/class-sm-post-types.php:89 +msgid "Update series" +msgstr "Preekserie bijwerken" + +#: includes/class-sm-post-types.php:90 +msgid "Add new series" +msgstr "Nieuwe preekserie toevoegen" + +#: includes/class-sm-post-types.php:91 +msgid "New series name" +msgstr "Naam van nieuwe preekserie" + +#: includes/class-sm-post-types.php:92 +msgid "No series found" +msgstr "Niet gevonden" + +#: includes/class-sm-post-types.php:107 +msgid "Topic" +msgstr "Onderwerp" + +#: includes/class-sm-post-types.php:108 +msgctxt "menu" +msgid "Topics" +msgstr "Onderwerpen" + +#: includes/class-sm-post-types.php:109 +msgid "Search topics" +msgstr "Zoek preekonderwerpen" + +#: includes/class-sm-post-types.php:110 +msgid "All topics" +msgstr "Alle preekonderwerpen" + +#: includes/class-sm-post-types.php:113 +msgid "Edit topic" +msgstr "Bewerk preekonderwerp" + +#: includes/class-sm-post-types.php:114 +msgid "Update topic" +msgstr "Preekonderwerp bijwerken" + +#: includes/class-sm-post-types.php:115 +msgid "Add new topic" +msgstr "Voeg nieuwe preekonderwerp toe" + +#: includes/class-sm-post-types.php:116 +msgid "New topic name" +msgstr "Naam nieuw preekonderwerp" + +#: includes/class-sm-post-types.php:117 +msgid "No topics found" +msgstr "Geen preekonderwerpen gevonden" + +#: includes/class-sm-post-types.php:129 +msgid "Books" +msgstr "Bijbelboeken" + +#: includes/class-sm-post-types.php:131 +msgid "Bible books" +msgstr "Bijbelboeken" + +#: includes/class-sm-post-types.php:132 +msgid "Book" +msgstr "Bijbelboek" + +#: includes/class-sm-post-types.php:133 +msgctxt "menu" +msgid "Books" +msgstr "Bijbelboeken" + +#: includes/class-sm-post-types.php:134 +msgid "Search books" +msgstr "Zoek Bijbelboek" + +#: includes/class-sm-post-types.php:135 +msgid "All books" +msgstr "Alle Bijbelboeken" + +#: includes/class-sm-post-types.php:138 +msgid "Edit book" +msgstr "Bewerk Bijbelboeken" + +#: includes/class-sm-post-types.php:139 +msgid "Update book" +msgstr "Bijbelboek bijwerken" + +#: includes/class-sm-post-types.php:140 +msgid "Add new book" +msgstr "Nieuwe Bijbelboek" + +#: includes/class-sm-post-types.php:141 +msgid "New book name" +msgstr "Naam nieuw Bijbelboek" + +#: includes/class-sm-post-types.php:142 +msgid "No books found" +msgstr "Geen Bijbelboeken gevonden" + +#: includes/class-sm-post-types.php:154 includes/class-sm-post-types.php:156 +msgid "Service Types" +msgstr "Dienstsoorten" + +#: includes/class-sm-post-types.php:157 includes/sm-cmb-functions.php:93 +#: includes/types-taxonomies.php:201 includes/types-taxonomies.php:202 +#: includes/types-taxonomies.php:203 includes/types-taxonomies.php:309 +msgid "Service Type" +msgstr "Dienstsoort" + +#: includes/class-sm-post-types.php:158 +msgctxt "menu" +msgid "Service Types" +msgstr "Dienstsoorten" + +#: includes/class-sm-post-types.php:159 includes/types-taxonomies.php:204 +msgid "Search service types" +msgstr "Zoek dienstsoorten" + +#: includes/class-sm-post-types.php:160 includes/types-taxonomies.php:206 +msgid "All service types" +msgstr "Alle dienstsoorten" + +#: includes/class-sm-post-types.php:163 includes/types-taxonomies.php:207 +msgid "Edit service type" +msgstr "Bewerk dienstsoorten" + +#: includes/class-sm-post-types.php:164 includes/types-taxonomies.php:208 +msgid "Update service type" +msgstr "Dienstsoort bijwerken" + +#: includes/class-sm-post-types.php:165 +msgid "Add new service type" +msgstr "Nieuwe dienstsoorten toevoegen" + +#: includes/class-sm-post-types.php:166 +msgid "New service type name" +msgstr "Naam nieuwe dienstsoort" + +#: includes/class-sm-post-types.php:167 +msgid "No service types found" +msgstr "Geen dienstsoorten gevonden" + +#: includes/class-sm-post-types.php:192 includes/options.php:269 +#: includes/options.php:278 includes/types-taxonomies.php:58 +#: includes/types-taxonomies.php:68 views/archive-wpfc_sermon.php:13 +msgid "Sermons" +msgstr "Preken" + +#: includes/class-sm-post-types.php:193 includes/types-taxonomies.php:59 +msgid "Sermon" +msgstr "Preek" + +#: includes/class-sm-post-types.php:194 +msgid "All Sermons" +msgstr "Alle preken" + +#: includes/class-sm-post-types.php:195 +msgctxt "menu" +msgid "Sermons" +msgstr "Preken" + +#: includes/class-sm-post-types.php:196 includes/types-taxonomies.php:60 +msgid "Add New" +msgstr "Toevoegen" + +#: includes/class-sm-post-types.php:197 +msgid "Add new sermon" +msgstr "Voeg nieuwe preek toe" + +#: includes/class-sm-post-types.php:198 views/archive-wpfc_sermon.php:62 +#: views/single-wpfc_sermon.php:23 views/taxonomy-wpfc_bible_book.php:90 +#: views/taxonomy-wpfc_preacher.php:96 views/taxonomy-wpfc_sermon_series.php:97 +#: views/taxonomy-wpfc_sermon_topics.php:97 +#: views/taxonomy-wpfc_service_type.php:90 +msgid "Edit" +msgstr "Bewerk" + +#: includes/class-sm-post-types.php:199 +msgid "Edit sermon" +msgstr "Bewerk Preek" + +#: includes/class-sm-post-types.php:200 +msgid "New sermon" +msgstr "Nieuwe Preek" + +#: includes/class-sm-post-types.php:203 +msgid "Search sermon" +msgstr "Zoek preek" + +#: includes/class-sm-post-types.php:204 includes/types-taxonomies.php:66 +msgid "No sermons found" +msgstr "Geen preken gevonden" + +#: includes/class-sm-post-types.php:205 +msgid "No sermons found in trash" +msgstr "Geen preken gevonden in Prullenbak" + +#: includes/class-sm-post-types.php:206 +msgid "Sermon image" +msgstr "Preek afbeelding" + +#: includes/class-sm-post-types.php:207 +msgid "Set sermon image" +msgstr "Preek afbeelding instellen" + +#: includes/class-sm-post-types.php:208 +msgid "Remove sermon image" +msgstr "Preek afbeelding verwijderen" + +#: includes/class-sm-post-types.php:209 +msgid "Use as sermon image" +msgstr "Als preek afbeelding instellen" + +#: includes/class-sm-post-types.php:210 +msgid "Insert to sermon" +msgstr "In preek toevoegen" + +#: includes/class-sm-post-types.php:211 +msgid "Uploaded to this sermon" +msgstr "Geüpload naar deze preek" + +#: includes/class-sm-post-types.php:212 +msgid "Filter sermon" +msgstr "Filter preek" + +#: includes/class-sm-post-types.php:213 +msgid "Sermon navigation" +msgstr "Preek navigatie" + +#: includes/class-sm-post-types.php:214 +msgid "Sermon list" +msgstr "Preek overzicht" + +#: includes/class-sm-post-types.php:216 +msgid "This is where you can add new sermons to your website." +msgstr "Hier kunt u nieuwe preken aan uw website toevoegen." + +#: includes/helper-functions.php:193 includes/template-tags.php:127 +#: includes/template-tags.php:410 includes/template-tags.php:456 +msgid "Series: " +msgstr "Serie:" + +#: includes/libraries/wp-background-process.php:423 +#, php-format +msgid "Every %s minutes" +msgstr "Elke %s minuten" + +#: includes/options.php:71 includes/options.php:165 +msgid "Sermon Manager Settings" +msgstr "Preek Manager instellingen" + +#: includes/options.php:71 includes/taxonomy-images/taxonomy-images.php:333 +#: includes/taxonomy-images/taxonomy-images.php:1238 +msgid "Settings" +msgstr "Instellingen" + +#: includes/options.php:80 includes/taxonomy-images/taxonomy-images.php:1263 +msgid "Manage Settings" +msgstr "Beheer instellingen" + +#: includes/options.php:170 +msgid "General" +msgstr "Algemeen" + +#: includes/options.php:173 +msgid "Verse" +msgstr "Vers" + +#: includes/options.php:176 +msgid "Podcast" +msgstr "Podcast" + +#: includes/options.php:184 +msgid "Settings saved" +msgstr "Instellingen opgeslagen" + +#: includes/options.php:194 +msgid "Need Some Help?" +msgstr "Hulp nodig?" + +#. translators: %s see msgid "Sign up" +#: includes/options.php:198 +#, php-format +msgid "" +"Did you know you can get expert support for only $49 per year! %s today and " +"get support from the developers who are building the Sermon Manager." +msgstr "" +"Wist u dat u deskundige ondersteuning kunt krijgen voor slechts $49 per " +"jaar! %s vandaag en krijg ondersteuning van de ontwikkelaars die de Preek " +"Manager aan het bouwen zijn." + +#: includes/options.php:198 +msgid "Sign up" +msgstr "Aanmelden" + +#: includes/options.php:202 +msgid "Free Support" +msgstr "Gratis Support" + +#: includes/options.php:204 +msgid "Priority Support" +msgstr "Premium Support" + +#: includes/options.php:207 +msgid "We offer limited free support via WordPress.org" +msgstr "Wij bieden gratis beperkte ondersteuning via WordPress.org" + +#: includes/options.php:214 +msgid "Frequently Asked Questions" +msgstr "Veelgestelde vragen" + +#. translators: %s see msgid "knowledge base" +#: includes/options.php:232 +#, php-format +msgid "Find out more in our %s" +msgstr "Lees meer in onze %s" + +#: includes/options.php:232 +msgid "knowledge base" +msgstr "knowledge base" + +#: includes/options.php:239 +msgid "Lets Make It Even Better!" +msgstr "Laten we het nog beter maken!" + +#: includes/options.php:242 +msgid "" +"If you have ideas on how to make Sermon Manager or any of our products " +"better, let us know!" +msgstr "" +"Als u ideeën heeft over hoe u Preek Manager of een van onze producten beter " +"kunt maken, laat het ons weten!" + +#: includes/options.php:246 +msgid "Submit Your Idea" +msgstr "Dien uw idee in" + +#: includes/options.php:260 +msgid "General Settings" +msgstr "Algemene Instellingen" + +#: includes/options.php:265 +msgid "Archive Page Title" +msgstr "Archief Pagina Titel" + +#: includes/options.php:269 includes/options.php:278 includes/options.php:488 +#: includes/options.php:498 includes/options.php:508 includes/options.php:518 +#: includes/options.php:554 includes/options.php:602 includes/options.php:615 +#: includes/options.php:643 includes/options.php:656 +#, php-format +msgid "e.g. %s" +msgstr "Bijv. %s" + +#: includes/options.php:274 +msgid "Archive Page Slug" +msgstr "Archief pagina Slug" + +#. translators: %1$s see msgid "sermons/preacher", effectively sermons/preacher +#. translators: %2$s see msgid "sermons/series", effectively sermons/series +#: includes/options.php:285 +#, php-format +msgid "" +"Common Base Slug — this is for users who want to have a common base " +"slug across all taxonomies, e.g. %1$s or %2$s." +msgstr "" +"Common Base Slug — dit is voor gebruikers die een gemeenschappelijke " +"Base Slug willen hebben voor alle taxonomieën, bijvoorbeeld %1$s of %2$s." + +#: includes/options.php:285 +msgid "sermons/preacher" +msgstr "preken/predikant" + +#: includes/options.php:285 +msgid "sermons/series" +msgstr "preken/serie" + +#: includes/options.php:290 +msgid "Enable a common base slug across all taxonomies" +msgstr "Inschakelen van een algemene slug over taxonomieën" + +#: includes/options.php:296 +msgid "" +"Enable Template Files — this is for users upgrading from an older " +"version who have issues with version 1.5+." +msgstr "" +"Inschakelen sjabloonbestanden - dit is voor gebruikers die van een oudere " +"versie zijn geupgrade die problemen met versie 1.5+ ondervinden." + +#. translators: %s effectively /views +#. translators: Since /views is a locale independent folder name it MUST NOT be localized +#: includes/options.php:303 +#, php-format +msgid "Enable template files found in the %s folder" +msgstr "Sjabloonbestanden inschakelen die in de map %s zijn gevonden" + +#: includes/options.php:309 +msgid "Disable Sermon Styles" +msgstr "Preek stijlen uitschakelen" + +#. translators: %s effectively sermons.css +#: includes/options.php:315 +#, php-format +msgid "" +"Disable Sermon CSS. If you do this, you should copy the styles from %s and " +"include them in your theme CSS." +msgstr "" +"Uitschakelen Preek CSS. Als u dit doet, moet u de stijlen uit %s kopiëren en " +"ze op nemen in uw thema CSS." + +#: includes/options.php:321 +msgid "Display audio player or video on archive pages" +msgstr "Audio-speler of video op de archiefpagina's weergeven" + +#: includes/options.php:326 +msgid "Display an audio player or video embed in the archive listing." +msgstr "Weergeven van een audio-speler of video insluiten in het archief." + +#: includes/options.php:332 includes/options.php:337 +msgid "Use old audio player" +msgstr "Oude audiospeler gebruiken" + +#: includes/options.php:343 +msgid "" +"Custom label for “Preacher”. Note: it will also change preacher " +"slugs." +msgstr "" +"Aangepast label voor “ Predikant”. Noot: de predikant slugs " +"worden ook aangepast." + +#: includes/options.php:351 +msgid "Sermon date format (used when creating a new Sermon)" +msgstr "Preek datumformaat (gebruikt bij het maken van een nieuwe preek)" + +#: includes/options.php:372 includes/options.php:378 +msgid "Show key verse in widget" +msgstr "Toon belangrijkste Bijbelvers in widget" + +#. translators: %s version like x.x.x +#: includes/options.php:385 +#, php-format +msgid "Version %s" +msgstr "Versie %s" + +#: includes/options.php:389 +msgid "Current Version" +msgstr "Huidige versie" + +#: includes/options.php:398 +msgid "Verse Settings" +msgstr "Vers Instellingen" + +#: includes/options.php:404 +msgid "Verse Popups" +msgstr "Vers Popups" + +#: includes/options.php:410 +msgid "Disable Bib.ly verse popups" +msgstr "Uitschakelen Bib.ly vers popups" + +#: includes/options.php:416 +msgid "Select Bible Version for Verse Popups" +msgstr "Selecteer de Bijbel Versie voor Vers Popups" + +#. translators: %1$s effectively ESV +#. translators: %2$s effectively NET +#. translators: %3$s effectively KJV +#. translators: %4$s effectively LEB +#. translators: %5$s see msgid "bib.ly", effectively bib.ly +#: includes/options.php:443 +#, php-format +msgid "%1$s, %2$s, %3$s, or %4$s are the currently supported popups for %5$s." +msgstr "" +"%1$s, %2$s, %3$s, of %4$s zijn de momenteel ondersteunde popups voor %5$s." + +#: includes/options.php:448 +msgid "bib.ly" +msgstr "bib.ly" + +#. translators: %s see effectively ESV +#: includes/options.php:451 +#, php-format +msgid "Warning! %s is not supported if your site uses SSL (HTTPS)." +msgstr "" +"Waarschuwing! %s wordt niet ondersteund als uw site SSL (HTTPS) gebruikt." + +#: includes/options.php:461 +msgid "Podcast Settings" +msgstr "Podcast-instellingen" + +#: includes/options.php:484 +msgid "Title" +msgstr "Titel" + +#: includes/options.php:494 includes/sm-cmb-functions.php:107 +#: includes/types-taxonomies.php:323 +msgid "Description" +msgstr "Beschrijving" + +#: includes/options.php:504 +msgid "Website Link" +msgstr "Website Link" + +#: includes/options.php:514 +msgid "Language" +msgstr "Taal" + +#: includes/options.php:524 +msgid "Copyright" +msgstr "Auteursrecht" + +#: includes/options.php:528 +#, php-format +msgid "e.g. Copyright © %s" +msgstr "Bv. Copyright © %s" + +#. translators: %s © +#: includes/options.php:534 +#, php-format +msgid "Tip: Use %s to generate a copyright symbol." +msgstr "Tip: Gebruik %s om een copyright symbool te genereren." + +#: includes/options.php:540 +msgid "Webmaster Name" +msgstr "Webmaster Naam" + +#: includes/options.php:544 +msgid "e.g. Your Name" +msgstr "Bv. uw naam" + +#: includes/options.php:550 +msgid "Webmaster Email" +msgstr "E-mail webmaster" + +#: includes/options.php:560 +msgid "Author" +msgstr "Auteur" + +#: includes/options.php:564 +msgid "e.g. Primary Speaker or Church Name" +msgstr "Bv. de hoofd spreker of naam van de kerk" + +#: includes/options.php:568 +msgid "This will display at the “Artist” in the iTunes Store." +msgstr "" +"Dit wordt weergegeven in de “Artiest” veld in de iTunes Store." + +#: includes/options.php:573 +msgid "Subtitle" +msgstr "Subtitel" + +#: includes/options.php:577 +#, php-format +msgid "e.g. Preaching and teaching audio from %s" +msgstr "Bv. Prediking en onderwijs audio van %s " + +#: includes/options.php:581 +msgid "" +"Your subtitle should briefly tell the listener what they can expect to hear." +msgstr "" +"Uw ondertiteling moet in het vertellen wat de luisteraar kan verwachten te " +"horen." + +#: includes/options.php:586 +msgid "Summary" +msgstr "Samenvatting" + +#: includes/options.php:590 +#, php-format +msgid "e.g. Weekly teaching audio brought to you by %s in City, State." +msgstr "Bv. Wekelijkse preken door %s in Stad." + +#: includes/options.php:593 +msgid "" +"Keep your Podcast Summary short, sweet and informative. Be sure to include a " +"brief statement about your mission and in what region your audio content " +"originates." +msgstr "" +"Houd uw Podcast Samenvatting kort, netjes en informatief. Zorg ervoor dat " +"uw missie omschrijving kort en bondig is. En uit welke regio de audio-inhoud " +"komt." + +#: includes/options.php:598 +msgid "Owner Name" +msgstr "Eigenaar Naam" + +#: includes/options.php:606 +msgid "This should typically be the name of your Church." +msgstr "Dit moet meestal de naam van uw kerk zijn." + +#: includes/options.php:611 +msgid "Owner Email" +msgstr "Eigenaar E-mail" + +#: includes/options.php:619 +msgid "" +"Use an email address that you don’t mind being made public. If someone " +"wants to contact you regarding your Podcast this is the address they will " +"use." +msgstr "" +"Gebruik een e-mailadres dat openbaar is. Als iemand contact met u wilt " +"opnemen over uw Podcast, dan is dit het adres dat ze zullen gebruiken." + +#: includes/options.php:624 +msgid "Cover Image" +msgstr "Profielafbeelding" + +#: includes/options.php:631 +msgid "Upload Image" +msgstr "Upload afbeelding" + +#: includes/options.php:634 +msgid "" +"This JPG will serve as the Podcast artwork in the iTunes Store. The image " +"must be between 1,400px by 1,400px and 3,000px by 3,000px or else iTunes " +"will not accept your feed." +msgstr "" +"Deze JPG zal dienen als het Podcast artwork in de iTunes Store. De " +"afbeelding moet tussen 1.400px bij 1.400px en 3.000px bij 3.000px zijn, " +"anders accepteert iTunes uw feed niet." + +#: includes/options.php:639 +msgid "Top Category" +msgstr "Topcategorie" + +#: includes/options.php:647 +msgid "" +"Choose the appropriate top-level category for your Podcast listing in iTunes." +msgstr "Kies de juiste top-level categorie voor uw Podcast notering in iTunes." + +#: includes/options.php:652 +msgid "Sub Category" +msgstr "Sub-Categorie" + +#: includes/options.php:660 +msgid "Choose the appropriate sub category for your Podcast listing in iTunes." +msgstr "Kies de juiste sub-categorie voor uw Podcast notering in iTunes." + +#: includes/options.php:665 +msgid "PodTrac Tracking" +msgstr "PodTrac Tracking" + +#: includes/options.php:670 +msgid "Enables PodTrac tracking." +msgstr "Activeerd PodTrac tracking." + +#. translators: %s podtrac.com +#: includes/options.php:675 +#, php-format +msgid "For more info on PodTrac or to sign up for an account, visit %s" +msgstr "" +"Voor meer informatie over PodTrac of om je aan te melden voor een account, " +"bezoek %s" + +#: includes/options.php:680 +msgid "HTML in description" +msgstr "HTML in omschrijving" + +#: includes/options.php:686 +msgid "Enable HTML description" +msgstr "HTML-omschrijving inschakelen" + +#: includes/options.php:690 +msgid "" +"Enables showing of HTML in iTunes description field. Uncheck if description " +"looks messy." +msgstr "" +"Maakt het tonen van HTML in het iTunes-beschrijvingsveld mogelijk. Schakel " +"het vinkje uit als de beschrijving er rommelig uitziet." + +#: includes/options.php:695 +msgid "Number of podcasts to show" +msgstr "Aantal te tonen podcasts" + +#: includes/options.php:704 +msgid "" +"Shows custom podcast count. If not defined, it uses WordPress default count." +msgstr "" +"Toont aangepaste podcast aantallen. Indien niet gedefinieerd, gebruikt het " +"standaard WordPress aantal." + +#: includes/options.php:711 +msgid "Feed URL to Submit to iTunes" +msgstr "Feed URL te verzenden naar iTunes" + +#: includes/options.php:722 +msgid "Feed Validator" +msgstr "Feed Validator" + +#. translators: %s Feed Validator link, see msgid "Feed Validator" +#: includes/options.php:722 +#, php-format +msgid "" +"Use the %s to diagnose and fix any problems before submitting your Podcast " +"to iTunes." +msgstr "" +"Gebruik de %s om eventuele problemen te diagnosticeren en op te lossen " +"voordat je je Podcast naar iTunes stuurt." + +#. translators: %s see msgid "Submit Your Podcast" +#: includes/options.php:726 +#, php-format +msgid "" +"Once your Podcast Settings are complete and your Sermons are ready, it’" +"s time to %s to the iTunes Store!" +msgstr "" +"Zodra je Podcast-instellingen en je preken klaar zijn, is het tijd om %s " +"naar de iTunes Store te verzenden!" + +#: includes/options.php:726 +msgid "Submit Your Podcast" +msgstr "Verstuur uw Podcast" + +#. translators: %s see msgid "FeedBurner" +#: includes/options.php:730 +#, php-format +msgid "" +"Alternatively, if you want to track your Podcast subscribers, simply pass " +"the Podcast Feed URL above through %s. FeedBurner will then give you a new " +"URL to submit to iTunes instead." +msgstr "" +"Als je je Podcast-abonnees wilt volgen, kun je de Podcast Feed URL hierboven " +"ook gewoon door %s laten lopen. FeedBurner geeft je dan een nieuwe URL om in " +"plaats daarvan naar iTunes te sturen." + +#: includes/options.php:730 +msgid "FeedBurner" +msgstr "FeedBurner" + +#. translators: %s see msgid "iTunes FAQ for Podcast Makers" +#: includes/options.php:734 +#, php-format +msgid "Please read the %s for more information." +msgstr "Lees de %s voor meer informatie." + +#: includes/options.php:734 +msgid "iTunes FAQ for Podcast Makers" +msgstr "iTunes FAQ voor Podcastmakers" + +#. translators: Button on the custom administration page. +#: includes/options.php:742 includes/taxonomy-images/taxonomy-images.php:395 +msgid "Save Changes" +msgstr "Bewaar wijzigingen" + +#: includes/shortcodes.php:805 includes/template-tags.php:112 +#: views/archive-wpfc_sermon.php:40 views/taxonomy-wpfc_bible_book.php:72 +#: views/taxonomy-wpfc_preacher.php:78 views/taxonomy-wpfc_sermon_series.php:79 +#: views/taxonomy-wpfc_sermon_topics.php:79 +#: views/taxonomy-wpfc_service_type.php:72 +#, php-format +msgid "Permalink to %s" +msgstr "Permalink naar %s" + +#: includes/sm-cmb-functions.php:57 includes/types-taxonomies.php:273 +msgid "Sermon Details" +msgstr "Preek Details" + +#: includes/sm-cmb-functions.php:86 +msgid "(optional)" +msgstr "(optioneel)" + +#. translators: %s date format, effectively d/m/Y or the like +#: includes/sm-cmb-functions.php:86 includes/types-taxonomies.php:302 +#, php-format +msgid "format: %s" +msgstr "indeling: %s" + +#: includes/sm-cmb-functions.php:94 includes/types-taxonomies.php:310 +msgid "" +"Select the type of service. Modify service types in Sermons → Service " +"Types." +msgstr "" +"Selecteer het soort van de dienst. Dienstsoorten wijzigen in preken -> " +"Dienstsoort." + +#: includes/sm-cmb-functions.php:101 includes/types-taxonomies.php:317 +msgid "Main Bible Passage" +msgstr "Belangrijkste Bijbeltekst" + +#. translators: %s see msgid "John 3:16-18", effectively John 3:16-18 +#: includes/sm-cmb-functions.php:102 includes/types-taxonomies.php:318 +#, php-format +msgid "Enter the Bible passage with the full book names, e.g. %s." +msgstr "Voer de Bijbeltekst met het volledige boek namen in, bv %s." + +#: includes/sm-cmb-functions.php:102 includes/types-taxonomies.php:318 +msgid "John 3:16-18" +msgstr "Johannes 3:16-18" + +#: includes/sm-cmb-functions.php:108 includes/types-taxonomies.php:324 +msgid "" +"Type a brief description about this sermon, an outline, or a full manuscript" +msgstr "" +"Typ een korte beschrijving over deze preek, een overzicht of een volledige " +"manuscript" + +#: includes/sm-cmb-functions.php:116 includes/types-taxonomies.php:332 +msgid "Sermon Files" +msgstr "Preek bestanden" + +#: includes/sm-cmb-functions.php:125 includes/types-taxonomies.php:341 +msgid "Location of MP3" +msgstr "Locatie van MP3" + +#: includes/sm-cmb-functions.php:126 includes/types-taxonomies.php:342 +msgid "Upload an audio file or enter an URL." +msgstr "Upload een audio-bestand of voer een URL in." + +#: includes/sm-cmb-functions.php:134 includes/types-taxonomies.php:350 +msgid "MP3 Duration" +msgstr "MP3 tijdsduur" + +#. translators: %s see msgid "hh:mm:ss", effectively hh:mm:ss +#: includes/sm-cmb-functions.php:135 includes/types-taxonomies.php:351 +#, php-format +msgid "" +"Length in %s format (if left blank, will attempt to calculate automatically " +"when you save)" +msgstr "" +"Lengte in %s formaat (indien leeg gelaten, wordt het automatisch berekent " +"terwijl u opslaat)" + +#: includes/sm-cmb-functions.php:135 includes/types-taxonomies.php:351 +msgid "hh:mm:ss" +msgstr "uu:mm:ss" + +#: includes/sm-cmb-functions.php:140 includes/types-taxonomies.php:356 +msgid "Video Embed Code" +msgstr "Video Embed Code" + +#: includes/sm-cmb-functions.php:141 includes/types-taxonomies.php:357 +msgid "Paste your embed code for Vimeo, Youtube, or other service here" +msgstr "Plak uw embed-code voor Vimeo, Youtube of andere service hier" + +#: includes/sm-cmb-functions.php:146 includes/types-taxonomies.php:362 +msgid "Video Link" +msgstr "Website Link" + +#: includes/sm-cmb-functions.php:147 includes/types-taxonomies.php:363 +msgid "Paste your link for Vimeo, Youtube, or other service here" +msgstr "Plak uw link voor Vimeo, Youtube of andere service hier" + +#: includes/sm-cmb-functions.php:153 includes/types-taxonomies.php:369 +msgid "Sermon Notes" +msgstr "Preek notities" + +#: includes/sm-cmb-functions.php:154 includes/sm-cmb-functions.php:163 +#: includes/types-taxonomies.php:370 includes/types-taxonomies.php:379 +msgid "Upload a pdf file or enter an URL." +msgstr "Upload een PDF-bestand of voer een URL in." + +#: includes/sm-cmb-functions.php:158 includes/sm-cmb-functions.php:167 +#: includes/types-taxonomies.php:374 includes/types-taxonomies.php:383 +msgid "Add File" +msgstr "Bestand toevoegen" + +#: includes/sm-cmb-functions.php:162 includes/template-tags.php:376 +#: includes/types-taxonomies.php:378 +msgid "Bulletin" +msgstr "Bulletin" + +#: includes/sm-core-functions.php:121 +msgctxt "slug" +msgid "preacher" +msgstr "predikant" + +#: includes/sm-core-functions.php:122 +msgctxt "slug" +msgid "series" +msgstr "serie" + +#: includes/sm-core-functions.php:123 +msgctxt "slug" +msgid "topics" +msgstr "onderwerpen" + +#: includes/sm-core-functions.php:124 +msgctxt "slug" +msgid "book" +msgstr "boek" + +#: includes/sm-core-functions.php:125 +msgctxt "slug" +msgid "service-type" +msgstr "dienstsoort" + +#: includes/sm-core-functions.php:126 +msgctxt "slug" +msgid "sermons" +msgstr "preken" + +#. translators: %1$s see msgid "term_taxonomy_id", effectively term_taxonomy_id +#. translators: %2$s effectively +#. translators: %3$s effectively category.php +#. translators: %4$s effectively tag.php +#. translators: %5$s effectively taxonomy.php +#. translators: %6$s see msgid "template hierarchy" +#: includes/taxonomy-images/public-filters.php:391 +#, php-format +msgid "" +"%1$s is not a property of the current queried object. This usually happens " +"when the %2$s filter is used in an unsupported template file. This filter " +"has been designed to work in taxonomy archives which are traditionally " +"served by one of the following template files: %3$s, %4$s or %5$s. Learn " +"more about %6$s." +msgstr "" +"%1$s is geen eigenschap van het huidige gezochte object. Dit gebeurt meestal " +"wanneer het %2$s filter gebruikt wordt in een niet-ondersteund template " +"bestand. Dit filter is ontworpen om te werken in taxonomische archieven die " +"traditioneel worden bediend door een van de volgende template bestanden: " +"%3$s, %4$s of %5$s. Meer informatie over %6$s." + +#: includes/taxonomy-images/public-filters.php:392 +msgid "term_taxonomy_id" +msgstr "term_taxonomy_id" + +#: includes/taxonomy-images/public-filters.php:397 +msgid "template hierarchy" +msgstr "sjabloonhiërarchie" + +#: includes/taxonomy-images/taxonomy-images.php:130 +#, php-format +msgid "Associate with %1$s" +msgstr "Koppelen met %1$s" + +#: includes/taxonomy-images/taxonomy-images.php:130 +#: includes/taxonomy-images/taxonomy-images.php:131 +msgid "this term" +msgstr "deze term" + +#: includes/taxonomy-images/taxonomy-images.php:131 +#, php-format +msgid "Remove association with %1$s" +msgstr "Koppeling met %1$s verwijderen" + +#. translators: Notice displayed on the custom administration page. +#: includes/taxonomy-images/taxonomy-images.php:290 +msgid "Image support for taxonomies successfully updated" +msgstr "Beeldondersteuning voor taxonomieën bijgewerkt" + +#. translators: Notice displayed on the custom administration page. +#: includes/taxonomy-images/taxonomy-images.php:293 +msgid "Image support has been disabled for all taxonomies." +msgstr "" +"Ondersteuning voor afbeeldingen is uitgeschakeld voor alle taxonomieën." + +#: includes/taxonomy-images/taxonomy-images.php:339 +msgid "Taxonomies" +msgstr "Taxonomieën" + +#: includes/taxonomy-images/taxonomy-images.php:359 +#: includes/taxonomy-images/taxonomy-images.php:360 +msgid "Taxonomy Images" +msgstr "Taxonomie afbeeldingen" + +#. translators: Heading of the custom administration page. +#: includes/taxonomy-images/taxonomy-images.php:387 +msgid "Taxonomy Images Plugin Settings" +msgstr "Taxonomie afbeeldingen Plugin instellingen" + +#. translators: An ajax request has failed for an unknown reason. +#: includes/taxonomy-images/taxonomy-images.php:447 +msgid "Unknown error encountered" +msgstr "Onbekende fout opgetreden" + +#: includes/taxonomy-images/taxonomy-images.php:529 +#: includes/taxonomy-images/taxonomy-images.php:611 +msgid "tt_id not sent" +msgstr "tt_id niet verzonden" + +#: includes/taxonomy-images/taxonomy-images.php:537 +#: includes/taxonomy-images/taxonomy-images.php:619 +msgid "tt_id is empty" +msgstr "tt_id is leeg" + +#: includes/taxonomy-images/taxonomy-images.php:544 +#: includes/taxonomy-images/taxonomy-images.php:626 +msgid "You do not have the correct capability to manage this term" +msgstr "U hoeft niet de juiste mogelijkheden mom deze term te beheren" + +#: includes/taxonomy-images/taxonomy-images.php:551 +msgid "No nonce included." +msgstr "Geen nonce opgenomen." + +#: includes/taxonomy-images/taxonomy-images.php:558 +#: includes/taxonomy-images/taxonomy-images.php:640 +msgid "Nonce did not match" +msgstr "Nonce komt niet overeenkomen" + +#: includes/taxonomy-images/taxonomy-images.php:565 +msgid "Image id not sent" +msgstr "Afbeeldings-id niet verzonden" + +#: includes/taxonomy-images/taxonomy-images.php:573 +msgid "Image id is not a positive integer" +msgstr "Afbeeldings-id is niet een positief geheel getal" + +#: includes/taxonomy-images/taxonomy-images.php:582 +msgid "Image successfully associated" +msgstr "Afbeelding met succes geassocieerd" + +#: includes/taxonomy-images/taxonomy-images.php:588 +msgid "Association could not be created" +msgstr "Associatie kan niet worden gemaakt" + +#: includes/taxonomy-images/taxonomy-images.php:633 +msgid "No nonce included" +msgstr "Geen nonce opgenomen" + +#: includes/taxonomy-images/taxonomy-images.php:648 +msgid "Nothing to remove" +msgstr "Niets om te verwijderen" + +#: includes/taxonomy-images/taxonomy-images.php:657 +msgid "Association successfully removed" +msgstr "Associatie met succes verwijderd" + +#: includes/taxonomy-images/taxonomy-images.php:662 +msgid "Association could not be removed" +msgstr "Associatie kon niet worden verwijderd" + +#: includes/taxonomy-images/taxonomy-images.php:739 +#: includes/taxonomy-images/taxonomy-images.php:793 +msgid "Image" +msgstr "Afbeelding" + +#: includes/taxonomy-images/taxonomy-images.php:786 +#: includes/taxonomy-images/taxonomy-images.php:823 +msgid "term" +msgstr "aanduiding" + +#: includes/taxonomy-images/taxonomy-images.php:797 +#, php-format +msgid "Associate an image from your media library to this %1$s." +msgstr "Koppel een afbeelding van uw mediabibliotheek aan %1$s. " + +#: includes/taxonomy-images/taxonomy-images.php:846 +#, php-format +msgid "Associate an image with the %1$s named “%2$s”." +msgstr "Een afbeelding koppelen aan %1$s met de naam “%2$s”." + +#: includes/taxonomy-images/taxonomy-images.php:847 +#, php-format +msgid "Upload a new image for this %s." +msgstr "Upload een nieuwe afbeelding voor %s." + +#: includes/taxonomy-images/taxonomy-images.php:847 +msgid "Upload." +msgstr "Upload." + +#: includes/taxonomy-images/taxonomy-images.php:848 +msgid "Delete" +msgstr "Verwijder" + +#: includes/taxonomy-images/taxonomy-images.php:848 +#, php-format +msgid "Remove image from this %s." +msgstr "Afbeelding uit %s verwijderen." + +#: includes/taxonomy-images/taxonomy-images.php:882 +msgid "“" +msgstr "“" + +#: includes/taxonomy-images/taxonomy-images.php:883 +msgid "”" +msgstr "”" + +#: includes/taxonomy-images/taxonomy-images.php:884 +msgid "Associating …" +msgstr "Koppelt …" + +#: includes/taxonomy-images/taxonomy-images.php:885 +msgid "Successfully Associated" +msgstr "Succesvol gekoppeld" + +#: includes/taxonomy-images/taxonomy-images.php:886 +msgid "Removing …" +msgstr "Verwijdert …" + +#: includes/taxonomy-images/taxonomy-images.php:887 +msgid "Successfully Removed" +msgstr "Succesvol verwijderd" + +#: includes/taxonomy-images/taxonomy-images.php:1162 +#, php-format +msgid "" +"The %1$s argument for %2$s is set to %3$s which is not a registered " +"taxonomy. Please check the spelling and update the argument." +msgstr "" +"De %1$s argument voor %2$s is ingesteld op %3$s die niet een geregistreerde " +"taxonomie is. Controleer de spelling en werk het argument bij." + +#: includes/taxonomy-images/taxonomy-images.php:1163 +msgid "taxonomy" +msgstr "taxonomie" + +#: includes/taxonomy-images/taxonomy-images.php:1174 +#, php-format +msgid "No taxonomies have image support. %1$s" +msgstr "Geen taxonomieën hebben ondersteuning voor afbeeldingen. %1$s" + +#: includes/taxonomy-images/taxonomy-images.php:1180 +#, php-format +msgid "The %1$s taxonomy does not have image support. %2$s" +msgstr "De taxonomie van %1$s heeft geen ondersteuning voor afbeeldingen. %2$s" + +#: includes/taxonomy-images/taxonomy-images.php:1206 +#, php-format +msgid "The %1$s has been called directly. Please use the %2$s filter instead." +msgstr "" +"De %1$s is direct aangeropen. Gebruik in plaats daarvan het %2$s filter." + +#: includes/taxonomy-images/taxonomy-images.php:1243 +msgid "Donate" +msgstr "Doneer" + +#: includes/taxonomy-images/taxonomy-images.php:1302 +#: includes/taxonomy-images/taxonomy-images.php:1303 +#: includes/types-taxonomies.php:94 includes/types-taxonomies.php:96 +#: includes/types-taxonomies.php:97 includes/types-taxonomies.php:99 +#: includes/types-taxonomies.php:100 includes/types-taxonomies.php:101 +#: includes/types-taxonomies.php:102 includes/types-taxonomies.php:104 +msgid "Preacher" +msgstr "Predikant" + +#: includes/taxonomy-images/taxonomy-images.php:1302 +#: includes/taxonomy-images/taxonomy-images.php:1303 +#, php-format +msgid "Set %s’s image" +msgstr "%s’s afbeelding instellen" + +#: includes/taxonomy-images/taxonomy-images.php:1304 +#: includes/taxonomy-images/taxonomy-images.php:1305 +msgid "Set Series image" +msgstr "Serie afbeelding instellen" + +#: includes/template-tags.php:125 includes/template-tags.php:408 +#: includes/template-tags.php:454 includes/widgets.php:96 +msgid "Bible Text: " +msgstr "Bijbeltekst: " + +#. Translators: %s: Preacher label (sentence case; singular) +#: includes/template-tags.php:158 +#, php-format +msgid "Filter by %s" +msgstr "Filter op %s" + +#: includes/template-tags.php:163 +msgid "Filter by Series" +msgstr "Filter op serie" + +#: includes/template-tags.php:168 +msgid "Filter by Topic" +msgstr "Filter op onderwerp" + +#: includes/template-tags.php:173 +msgid "Filter by Book" +msgstr "Filter op boek" + +#: includes/template-tags.php:368 +msgid "Download Files" +msgstr "Download bestanden" + +#: includes/template-tags.php:370 +msgid "MP3" +msgstr "MP3" + +#: includes/template-tags.php:373 +msgid "Notes" +msgstr "Noten" + +#: includes/template-tags.php:423 +msgid "Sermon Topics: " +msgstr "Preek onderwerpen: " + +#: includes/types-taxonomies.php:61 +msgid "Add New Sermon" +msgstr "Voeg nieuwe preek toe" + +#: includes/types-taxonomies.php:62 +msgid "Edit Sermon" +msgstr "Bewerk Preek" + +#: includes/types-taxonomies.php:63 +msgid "New Sermon" +msgstr "Nieuwe Preek" + +#: includes/types-taxonomies.php:64 +msgid "View Sermon" +msgstr "Bekijk Preek" + +#: includes/types-taxonomies.php:65 +msgid "Search Sermons" +msgstr "Zoek Preken" + +#: includes/types-taxonomies.php:67 +msgid "No sermons found in Trash" +msgstr "Geen Preken gevonden in Prullenbak" + +#: includes/types-taxonomies.php:93 includes/types-taxonomies.php:95 +#: includes/types-taxonomies.php:98 includes/types-taxonomies.php:103 +#: includes/types-taxonomies.php:105 +msgid "Preachers" +msgstr "Predikanten" + +#: includes/types-taxonomies.php:97 +#, php-format +msgid "Most frequent %s" +msgstr "Meest voorkomende %s" + +#: includes/types-taxonomies.php:102 +#, php-format +msgid "New %s" +msgstr "Nieuwe %s" + +#: includes/types-taxonomies.php:103 +#, php-format +msgid "Separate multiple %s with commas" +msgstr "Meerdere %s scheiden met komma 's" + +#: includes/types-taxonomies.php:104 +#, php-format +msgid "Add or remove %s" +msgstr "Toevoegen of verwijderen van %s" + +#: includes/types-taxonomies.php:105 +#, php-format +msgid "Choose from most frequent %s" +msgstr "Kiezen uit meest voorkomende %s" + +#: includes/types-taxonomies.php:123 +msgid "Search sermon series" +msgstr "Zoek preek serie" + +#: includes/types-taxonomies.php:124 +msgid "Most frequent sermon series" +msgstr "Meest voorkomende preek serie" + +#: includes/types-taxonomies.php:125 +msgid "All sermon series" +msgstr "Alle preekseries" + +#: includes/types-taxonomies.php:126 +msgid "Edit sermon series" +msgstr "Bewerk preekserie" + +#: includes/types-taxonomies.php:127 +msgid "Update sermon series" +msgstr "Preekserie bijwerken" + +#: includes/types-taxonomies.php:128 +msgid "Add new sermon series" +msgstr "Nieuwe preekserie toevoegen" + +#: includes/types-taxonomies.php:129 +msgid "New sermon series name" +msgstr "Naam van nieuwe preekserie" + +#: includes/types-taxonomies.php:130 +msgid "Separate sermon series with commas" +msgstr "Meerdere preekseries scheiden met komma 's" + +#: includes/types-taxonomies.php:131 +msgid "Add or remove sermon series" +msgstr "Toevoegen of verwijderen van preekserie" + +#: includes/types-taxonomies.php:132 +msgid "Choose from most used sermon series" +msgstr "Kiezen uit meest gebruikte preekseries" + +#: includes/types-taxonomies.php:147 includes/types-taxonomies.php:148 +#: includes/types-taxonomies.php:149 +msgid "Sermon Topics" +msgstr "Preek onderwerpen" + +#: includes/types-taxonomies.php:150 +msgid "Search sermon topics" +msgstr "Zoek preek onderwerpen" + +#: includes/types-taxonomies.php:151 +msgid "Most popular sermon topics" +msgstr "Meest populaire preekonderwerpen" + +#: includes/types-taxonomies.php:152 +msgid "All sermon topics" +msgstr "Alle preekonderwerpen" + +#: includes/types-taxonomies.php:153 +msgid "Edit sermon topic" +msgstr "Bewerk preekonderwerp" + +#: includes/types-taxonomies.php:154 +msgid "Update sermon topic" +msgstr "Preekonderwerp bijwerken" + +#: includes/types-taxonomies.php:155 +msgid "Add new sermon topic" +msgstr "Voeg nieuwe preekonderwerp toe" + +#: includes/types-taxonomies.php:156 +msgid "New sermon topic" +msgstr "Nieuw preekonderwerp" + +#: includes/types-taxonomies.php:157 +msgid "Separate sermon topics with commas" +msgstr "Meerdere preekonderwerpen scheiden met komma 's" + +#: includes/types-taxonomies.php:158 +msgid "Add or remove sermon topics" +msgstr "Toevoegen of verwijderen van de preekonderwerpen" + +#: includes/types-taxonomies.php:159 +msgid "Choose from most used sermon topics" +msgstr "Kiezen uit meest gebruikte preekonderwerpen" + +#: includes/types-taxonomies.php:174 includes/types-taxonomies.php:175 +#: includes/types-taxonomies.php:176 +msgid "Book of the Bible" +msgstr "Bijbelboek" + +#: includes/types-taxonomies.php:177 +msgid "Search books of the Bible" +msgstr "Zoek Bijbelboek" + +#: includes/types-taxonomies.php:178 +msgid "Most popular books of the Bible" +msgstr "Populairste Bijbelboeken" + +#: includes/types-taxonomies.php:179 +msgid "All books of the Bible" +msgstr "Alle Bijbelboeken" + +#: includes/types-taxonomies.php:180 +msgid "Edit book of the Bible" +msgstr "Bewerk Bijbelboeken" + +#: includes/types-taxonomies.php:181 +msgid "Update book of the Bible" +msgstr "Bijbelboek bijwerken" + +#: includes/types-taxonomies.php:182 +msgid "Add new books of the Bible" +msgstr "Nieuwe Bijbelboek toevoegen" + +#: includes/types-taxonomies.php:183 +msgid "New book of the Bible" +msgstr "Nieuwe Bijbelboek" + +#: includes/types-taxonomies.php:184 +msgid "Separate books of the Bible with commas" +msgstr "Meerdere Bijbelboeken scheiden met komma 's" + +#: includes/types-taxonomies.php:185 +msgid "Add or remove books of the Bible" +msgstr "Toevoegen of verwijderen van Bijbelboeken" + +#: includes/types-taxonomies.php:186 +msgid "Choose from most used books of the Bible" +msgstr "Kiezen uit meest gebruikte Bijbelboeken" + +#: includes/types-taxonomies.php:205 +msgid "Most popular service types" +msgstr "Meest populaire dienstsoorten" + +#: includes/types-taxonomies.php:209 +msgid "Add new service types" +msgstr "Nieuwe dienstsoorten toevoegen" + +#: includes/types-taxonomies.php:210 +msgid "New Service Type" +msgstr "Nieuwe dienstsoort" + +#: includes/types-taxonomies.php:211 +msgid "Separate service types with commas" +msgstr "Meerdere dienstsoorten scheiden met komma 's" + +#: includes/types-taxonomies.php:212 +msgid "Add or remove service types" +msgstr "Dienstsoorten toevoegen of verwijderen" + +#: includes/types-taxonomies.php:213 +msgid "Choose from most used service types" +msgstr "Kies uit de meest gebruikte dienstsoorten" + +#: includes/types-taxonomies.php:346 +msgid "Add Sermon Audio" +msgstr "Voeg nieuwe preek toe" + +#: includes/vendor/abstract-wp-rest-controller.php:29 +#, php-format +msgid "The %s method must be overridden." +msgstr "De %s methode moet worden overruled." + +#: includes/vendor/abstract-wp-rest-controller.php:41 +#: includes/vendor/abstract-wp-rest-controller.php:53 +#: includes/vendor/abstract-wp-rest-controller.php:65 +#: includes/vendor/abstract-wp-rest-controller.php:77 +#: includes/vendor/abstract-wp-rest-controller.php:89 +#: includes/vendor/abstract-wp-rest-controller.php:101 +#: includes/vendor/abstract-wp-rest-controller.php:113 +#: includes/vendor/abstract-wp-rest-controller.php:125 +#: includes/vendor/abstract-wp-rest-controller.php:137 +#: includes/vendor/abstract-wp-rest-controller.php:149 +#: includes/vendor/abstract-wp-rest-controller.php:161 +#: includes/vendor/abstract-wp-rest-controller.php:174 +#, php-format +msgid "Method %s not implemented. Must be overridden in subclass." +msgstr "Method %s not implemented. Must be overridden in subclass." + +#: includes/vendor/abstract-wp-rest-controller.php:287 +msgid "Current page of the collection." +msgstr "Huidige pagina van de collectie." + +#: includes/vendor/abstract-wp-rest-controller.php:295 +msgid "Maximum number of items to be returned in result set." +msgstr "Maximaal aantal resultaten dat kan worden weergegeven." + +#: includes/vendor/abstract-wp-rest-controller.php:304 +msgid "Limit results to those matching a string." +msgstr "Beperk resultaten die overeenkomen met een string." + +#: includes/vendor/abstract-wp-rest-controller.php:324 +msgid "" +"Scope under which the request is made; determines fields present in response." +msgstr "" +"Omvang waaronder het verzoek wordt gedaan; bepaalt de velden die in antwoord " +"daarop aanwezig zijn." + +#: includes/widgets.php:12 +msgid "The most recent sermons on your site" +msgstr "De meest recente preken op uw site" + +#: includes/widgets.php:14 includes/widgets.php:43 +msgid "Recent Sermons" +msgstr "Recente preken" + +#: includes/widgets.php:134 +msgid "Title:" +msgstr "Titel:" + +#: includes/widgets.php:140 +msgid "Number of sermons to show:" +msgstr "Aantal preken weergeven:" + +#. translators: plugin header field "Plugin Name" +#: sermons.php:3 +msgid "Sermon Manager for WordPress" +msgstr "Preek Manager voor WordPress" + +#. translators: plugin header field "Description" +#: sermons.php:5 +msgid "Add audio and video sermons, manage speakers, series, and more." +msgstr "" +"Toevoegen en beheren van audio- en video preken, sprekers, series en meer. " +"Bezoek Wordpress for " +"Church voor tutorials en steun." + +#: sermons.php:32 +#, php-format +msgid "PHP %s" +msgstr "PHP %s" + +#. translators: %1$s current PHP version, see msgid "PHP %s", effectively PHP %s +#. translators: %2$s required PHP version, see msgid "PHP %s", effectively PHP %s +#: sermons.php:32 +#, php-format +msgid "You are running %1$s, but Sermon Manager requires at least %2$s." +msgstr "Je draait %1$s, maar Preek Manager heeft minstens %2$s nodig." + +#. translators: %s see msgid "←", effectively +#: views/archive-wpfc_sermon.php:18 views/archive-wpfc_sermon.php:71 +#, php-format +msgid "%s Older sermons" +msgstr "%s oudere preken" + +#. translators: %s see msgid "→", effectively +#: views/archive-wpfc_sermon.php:21 views/archive-wpfc_sermon.php:74 +#, php-format +msgid "Newer sermons %s" +msgstr "Nieuwere preken %s" + +#: views/archive-wpfc_sermon.php:28 views/taxonomy-wpfc_bible_book.php:45 +#: views/taxonomy-wpfc_preacher.php:51 views/taxonomy-wpfc_sermon_series.php:52 +#: views/taxonomy-wpfc_sermon_topics.php:52 +#: views/taxonomy-wpfc_service_type.php:45 +msgid "Not Found" +msgstr "Niet gevonden" + +#: views/archive-wpfc_sermon.php:30 views/taxonomy-wpfc_bible_book.php:47 +#: views/taxonomy-wpfc_preacher.php:53 views/taxonomy-wpfc_sermon_series.php:54 +#: views/taxonomy-wpfc_sermon_topics.php:54 +#: views/taxonomy-wpfc_service_type.php:47 +msgid "Apologies, but no sermons were found." +msgstr "Sorry, er zijn geen preken gevonden." + +#: views/archive-wpfc_sermon.php:47 views/taxonomy-wpfc_bible_book.php:77 +#: views/taxonomy-wpfc_preacher.php:83 views/taxonomy-wpfc_sermon_series.php:84 +#: views/taxonomy-wpfc_sermon_topics.php:84 +#: views/taxonomy-wpfc_service_type.php:77 +#, php-format +msgid "Preached on %s" +msgstr "Gepredikt op %s" + +#: views/archive-wpfc_sermon.php:60 views/taxonomy-wpfc_bible_book.php:89 +#: views/taxonomy-wpfc_preacher.php:95 views/taxonomy-wpfc_sermon_series.php:96 +#: views/taxonomy-wpfc_sermon_topics.php:96 +#: views/taxonomy-wpfc_service_type.php:89 +#, php-format +msgid "%s comment" +msgid_plural "%s comments" +msgstr[0] "%s reactie" +msgstr[1] "%s reacties" + +#: views/archive-wpfc_sermon.php:60 views/taxonomy-wpfc_bible_book.php:89 +#: views/taxonomy-wpfc_preacher.php:95 views/taxonomy-wpfc_sermon_series.php:96 +#: views/taxonomy-wpfc_sermon_topics.php:96 +#: views/taxonomy-wpfc_service_type.php:89 +msgid "Leave a comment" +msgstr "Laat een reactie achter" + +#: views/single-wpfc_sermon.php:30 +msgctxt "Previous post link" +msgid "←" +msgstr "←" + +#: views/single-wpfc_sermon.php:33 +msgctxt "Next post link" +msgid "→" +msgstr "→" + +#: views/taxonomy-wpfc_bible_book.php:20 +#, php-format +msgid "Sermons by Book: %s" +msgstr "Preken per Bijbelboek: %s" + +#. translators: %s see msgid "←", effectively +#: views/taxonomy-wpfc_bible_book.php:36 views/taxonomy-wpfc_bible_book.php:100 +#: views/taxonomy-wpfc_preacher.php:42 views/taxonomy-wpfc_preacher.php:106 +#: views/taxonomy-wpfc_sermon_series.php:43 +#: views/taxonomy-wpfc_sermon_series.php:107 +#: views/taxonomy-wpfc_sermon_topics.php:43 +#: views/taxonomy-wpfc_sermon_topics.php:107 +#: views/taxonomy-wpfc_service_type.php:36 +#: views/taxonomy-wpfc_service_type.php:100 +#, php-format +msgid "%s Older posts" +msgstr "%s oudere preken" + +#: views/taxonomy-wpfc_bible_book.php:36 views/taxonomy-wpfc_bible_book.php:100 +#: views/taxonomy-wpfc_preacher.php:42 views/taxonomy-wpfc_preacher.php:106 +#: views/taxonomy-wpfc_sermon_series.php:43 +#: views/taxonomy-wpfc_sermon_series.php:107 +#: views/taxonomy-wpfc_sermon_topics.php:43 +#: views/taxonomy-wpfc_sermon_topics.php:107 +#: views/taxonomy-wpfc_service_type.php:36 +#: views/taxonomy-wpfc_service_type.php:100 +msgid "←" +msgstr "←" + +#: views/taxonomy-wpfc_bible_book.php:38 views/taxonomy-wpfc_bible_book.php:102 +#: views/taxonomy-wpfc_preacher.php:44 views/taxonomy-wpfc_preacher.php:108 +#: views/taxonomy-wpfc_sermon_series.php:45 +#: views/taxonomy-wpfc_sermon_series.php:109 +#: views/taxonomy-wpfc_sermon_topics.php:45 +#: views/taxonomy-wpfc_sermon_topics.php:109 +#: views/taxonomy-wpfc_service_type.php:38 +#: views/taxonomy-wpfc_service_type.php:102 +msgid "→" +msgstr "→" + +#. translators: %s see msgid "→", effectively +#: views/taxonomy-wpfc_bible_book.php:38 views/taxonomy-wpfc_bible_book.php:102 +#: views/taxonomy-wpfc_preacher.php:44 views/taxonomy-wpfc_preacher.php:108 +#: views/taxonomy-wpfc_sermon_series.php:45 +#: views/taxonomy-wpfc_sermon_series.php:109 +#: views/taxonomy-wpfc_sermon_topics.php:45 +#: views/taxonomy-wpfc_sermon_topics.php:109 +#: views/taxonomy-wpfc_service_type.php:38 +#: views/taxonomy-wpfc_service_type.php:102 +#, php-format +msgid "Newer posts %s" +msgstr "Nieuwere preken %s" + +#: views/taxonomy-wpfc_preacher.php:20 +#, php-format +msgid "Sermons by: %s" +msgstr "Preken op: %s" + +#: views/taxonomy-wpfc_sermon_series.php:20 +#, php-format +msgid "Sermons Series: %s" +msgstr "Preken Serie: %s" + +#: views/taxonomy-wpfc_sermon_topics.php:20 +#, php-format +msgid "Sermons Topic: %s" +msgstr "Preken onderwerp: %s" + +#: views/taxonomy-wpfc_service_type.php:20 +#, php-format +msgid "Sermons By Service: %s" +msgstr "Preken op dienst: %s" diff --git a/phpcs.xml.dist b/phpcs.xml.dist index 25f0302..50899b9 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -1,9 +1,11 @@ - - Generally-applicable sniffs for WordPress plugins + + Sermon Manager Ruleset + + @@ -12,12 +14,40 @@ + */node_modules/* */vendor/* + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/readme.txt b/readme.txt index e220580..0e03d00 100755 --- a/readme.txt +++ b/readme.txt @@ -5,7 +5,7 @@ Tags: church, sermon, sermons, preaching, podcasting, manage, managing, podcasts Requires at least: 4.7.0 Tested up to: 5.0 Requires PHP: 5.3 -Stable tag: 2.15.12 +Stable tag: 2.15.13 License: GPLv2 License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -122,6 +122,14 @@ Visit the [plugin homepage](https://wpforchurch.com/wordpress-plugins/sermon-man 2. Sermon Files ## Changelog ## +### 2.15.13 ### +* New: Dutch translation (thanks @LeonCB!) +* New: Add support for Dunamis theme +* New: Add support for TwentyNineteen +* New: Add support for ExodosWP +* Change: Add WordPress author metabox +* Fix: Service Type not saving in quick edit + ### 2.15.12 ### * Fix: Fatal error when saving a sermon * Fix: Podcast buttons shortcode has unnecessary left margin (thanks @macbookandrew!) diff --git a/sermons.php b/sermons.php index 123e16c..5c8b147 100755 --- a/sermons.php +++ b/sermons.php @@ -1,783 +1,849 @@ - -
-

- PHP %s. - // translators: %2$s required PHP version, see msgid "PHP %s", effectively PHP %s. - echo wp_sprintf( esc_html__( 'You are running %1$s, but Sermon Manager requires at least %2$s.', 'sermon-manager-for-wordpress' ), '' . wp_sprintf( esc_html__( 'PHP %s', 'sermon-manager-for-wordpress' ), PHP_VERSION ) . '', '' . wp_sprintf( esc_html__( 'PHP %s', 'sermon-manager-for-wordpress' ), '5.3.0' ) . '' ); - ?> -

-
- _includes(); - - // Load translations. - add_action( 'after_setup_theme', array( $this, 'load_translations' ) ); - // Register & enqueue scripts & styles. - add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts_styles' ) ); - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts_styles' ) ); - add_action( 'wp_footer', array( $this, 'register_scripts_styles' ) ); - add_action( 'wp_footer', array( $this, 'enqueue_scripts_styles' ) ); - // Append custom classes to individual sermons. - add_filter( 'post_class', array( $this, 'add_additional_sermon_classes' ), 10, 3 ); - // Add Sermon Manager image sizes. - add_action( 'after_setup_theme', array( $this, 'add_image_sizes' ) ); - // Fix Sermon ordering. - add_action( 'pre_get_posts', array( $this, 'fix_sermons_ordering' ), 90 ); - // No idea... better not touch it for now. - add_filter( 'sermon-images-disable-public-css', '__return_true' ); - // Attach to fix WP dates. - SM_Dates_WP::hook(); - // Render sermon HTML for search compatibility. - add_action( 'wp_insert_post', array( $this, 'render_sermon_into_content' ), 10, 2 ); - // Remove SB Help from SM pages, since it messes up the formatting. - add_action( 'contextual_help', function () { - $screen = get_current_screen(); - $screen_id = $screen ? $screen->id : ''; - - if ( in_array( $screen_id, sm_get_screen_ids() ) ) { - remove_action( 'contextual_help', 'sb_add_contextual_help' ); - } - }, 0 ); - // Allow usage of remote URLs for attachments (used for images imported from SE). - add_filter( 'wp_get_attachment_url', function ( $url, $attachment_id ) { - $db_url = get_post_meta( $attachment_id, '_wp_attached_file', true ); - - if ( $db_url && parse_url( $db_url, PHP_URL_SCHEME ) !== null ) { - return $db_url; - } - - return $url; - }, 10, 2 ); - // Allows reimport after sermon deletion. - add_action( 'before_delete_post', function ( $id ) { - global $post_type; - - if ( 'wpfc_sermon' !== $post_type ) { - return; - } - - $sermons_se = get_option( '_sm_import_se_messages' ); - $sermons_sb = get_option( '_sm_import_sb_messages' ); - - $sermon_messages = array( $sermons_se, $sermons_sb ); - - foreach ( $sermon_messages as $offset0 => &$sermons_array ) { - foreach ( $sermons_array as $offset1 => $value ) { - if ( $value['new_id'] == $id ) { - unset( $sermons_array[ $offset1 ] ); - update_option( 0 === $offset0 ? '_sm_import_se_messages' : '_sm_import_sb_messages', $sermons_array ); - - return; - } - } - } - } ); - - // Temporary hook for importing until API is properly done. - add_action( 'admin_init', function () { - if ( isset( $_GET['page'] ) && 'sm-import-export' === $_GET['page'] ) { - if ( isset( $_GET['doimport'] ) ) { - $class = null; - - switch ( $_GET['doimport'] ) { - case 'sb': - $class = new SM_Import_SB(); - break; - case 'se': - $class = new SM_Import_SE(); - break; - case 'exsm': - $class = new SM_Export_SM(); - $class->sermon_export_wp(); - die(); - break; - case 'sm': - $class = new SM_Import_SM(); - break; - } - - if ( null !== $class ) { - $class->import(); - add_action( 'admin_notices', function () { - if ( ! ! \SermonManager::getOption( 'debug_import' ) ) : - ?> -
-

Debug info:

-
-
- - -
-

-
- -
-

executed.

-
- $functions ) { - foreach ( $functions as $function ) { - if ( ! get_option( 'wp_sm_updater_' . $function . '_done', 0 ) ) { - $at_least_one = true; - - if ( ! function_exists( $function ) ) { - require_once SM_PATH . 'includes/sm-update-functions.php'; - } - - call_user_func( $function ); - - ?> -
-

executed.

-
- -
-

All update functions have already been executed.

-
- = 10 ) { - global $wpdb, $skip_content_check; - - $skip_content_check = true; - - $sm = SermonManager::get_instance(); - - // All sermons. - $sermons = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE `post_type` = %s", 'wpfc_sermon' ) ); - - foreach ( $sermons as $sermon ) { - $sermon_id = $sermon->ID; - - if ( 11 === $value ) { - $sm->render_sermon_into_content( $sermon_id, null, true ); - } else { - $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET `post_content` = '' WHERE `ID` = %d", $sermon_id ) ); - } - } - - $skip_content_check = false; - - $value = intval( substr( $value, 1 ) ); - } - - return $value; - } ); - - // Remove audio ID if it's not needed. - add_action( 'save_post_wpfc_sermon', function ( $post_ID, $post, $update ) { - if ( ! isset( $_POST['sermon_audio_id'] ) && ! isset( $_POST['sermon_audio'] ) ) { - return; - } - - $audio_id = &$_POST['sermon_audio_id']; - $audio_url = $_POST['sermon_audio']; - - // Attempt to get remote file size. - if ( $audio_url && ! $audio_id ) { - // Put our options as default (sorry). - stream_context_set_default( array( - 'http' => array( - 'method' => 'HEAD', - 'timeout' => 2, - ), - ) ); - - // Do the request. - $head = array_change_key_case( get_headers( $audio_url, 1 ) ); - - if ( $head && isset( $head['content-length'] ) ) { - update_post_meta( $post_ID, '_wpfc_sermon_size', $head['content-length'] ?: 0 ); - } - } - - if ( ! $audio_id ) { - return; - } - - $parsed_audio_url = parse_url( $audio_url, PHP_URL_HOST ); - $parsed_website_url = parse_url( home_url(), PHP_URL_HOST ); - - if ( $parsed_audio_url !== $parsed_website_url ) { - $audio_id = ''; - update_post_meta( $post_ID, 'sermon_audio_id', $audio_id ); - } - - // Attempt to get audio file duration. - if ( $audio_id ) { - $the_file = wp_get_attachment_metadata( $audio_id ); - - if ( $the_file ) { - if ( isset( $the_file['length'] ) ) { - $length = date( 'H:i:s', $the_file['length'] ); - $_POST['_wpfc_sermon_duration'] = $length; - update_post_meta( $post_ID, '_wpfc_sermon_duration', $length ); - } - - if ( isset( $the_file['filesize'] ) ) { - $_POST['_wpfc_sermon_size'] = $the_file['filesize']; - update_post_meta( $post_ID, '_wpfc_sermon_size', $the_file['filesize'] ); - } - } - } - }, 40, 3 ); - - // Allows user to not include themselves into views count. - add_filter( 'sm_views_add_view', function () { - if ( ! SermonManager::getOption( 'enable_views_count_logged_in', true ) ) { - if ( is_user_logged_in() && ( current_user_can( 'editor' ) || current_user_can( 'administrator' ) ) ) { - return false; - } - } - - return true; - } ); - - // Add a notice if output buffering is disabled. - add_action( 'admin_notices', function () { - if ( ! SM_OB_ENABLED ) { - ?> -
-

- Sermon Manager". - echo wp_sprintf( __( '%s requires output buffering to be turned on to display content. It is currently off. Please enable it or contact your hosting provider for help. Most of plugin functionality will be disabled until output buffering is enabled.', 'sermon-manager-for-wordpress' ), '' . __( 'Sermon Manager', 'sermon-manager-for-wordpress' ) . '' ); - ?> -

-
- post_type ) { - return; - } - - if ( ! $skip_check ) { - if ( defined( 'SM_SAVING_POST' ) ) { - return; - } else { - define( 'SM_SAVING_POST', 1 ); - } - } - - $content = ''; - $bible_passage = get_post_meta( $post_ID, 'bible_passage', true ); - $has_preachers = has_term( '', 'wpfc_preacher', $post ); - $has_series = has_term( '', 'wpfc_sermon_series', $post ); - - if ( $bible_passage ) { - $content .= __( 'Bible Text:', 'sermon-manager-for-wordpress' ) . ' ' . $bible_passage; - } - - if ( $has_preachers ) { - if ( $bible_passage ) { - $content .= ' | '; - } - - $content .= ( \SermonManager::getOption( 'preacher_label', '' ) ? \SermonManager::getOption( 'preacher_label', 'Preacher' ) . ':' : __( 'Preacher:', 'sermon-manager-for-wordpress' ) ) . ' '; - $content .= strip_tags( get_the_term_list( $post->ID, 'wpfc_preacher', '', ', ', '' ) ); - } - - if ( $has_series ) { - if ( $has_preachers ) { - $content .= ' | '; - } - $content .= strip_tags( get_the_term_list( $post->ID, 'wpfc_sermon_series', __( 'Series:', 'sermon-manager-for-wordpress' ) . ' ', ', ', '' ) ); - } - - $description = strip_tags( trim( get_post_meta( $post->ID, 'sermon_description', true ) ) ); - - if ( '' !== $description ) { - $content .= ' | ' . $description; - } - - /** - * Allows to modify sermon content that will be saved as "post_content". - * - * @param string $content Textual content (no HTML). - * @param int $post_ID ID of the sermon. - * @param WP_Post $post Sermon post object. - * @param bool $skip_check Basically, a way to identify if the function is being executed from the update function or not. - * - * @since 2.11.0 - */ - $content = apply_filters( 'sm_sermon_post_content', $content, $post_ID, $post, $skip_check ); - $content = apply_filters( "sm_sermon_post_content_$post_ID", $content, $post_ID, $post, $skip_check ); - - if ( ! $skip_content_check ) { - if ( ! \SermonManager::getOption( 'post_content_enabled', 1 ) ) { - $content = ''; - } - } - - $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET `post_content` = %s WHERE `ID` = %s", array( - $content, - $post_ID, - ) ) ); - } - - /** - * Fixes Sermons ordering. Uses `sermon_date` meta instead of sermon's published date. - * - * @param WP_Query $query The query. - * - * @return void - */ - public static function fix_sermons_ordering( $query ) { - if ( ! is_admin() && ( $query->is_main_query() ) ) { - if ( is_post_type_archive( 'wpfc_sermon' ) || is_tax( sm_get_taxonomies() ) ) { - $query->set( 'meta_key', 'sermon_date' ); - $query->set( 'meta_value_num', time() ); - $query->set( 'meta_compare', '<=' ); - $query->set( 'orderby', 'meta_value_num' ); - $query->set( 'order', 'DESC' ); - - /** - * Allows to filter the sermon query. - * - * @since 2.13.5 - * - * @param WP_Query $query The query. - */ - do_action( 'sm_query', $query ); - } - } - } - - /** - * Load plugin translations - * - * @return void - */ - public static function load_translations() { - load_plugin_textdomain( 'sermon-manager-for-wordpress', false, plugin_basename( dirname( __FILE__ ) ) . '/languages' ); - } - - /** - * Enqueue Sermon Manager scripts and styles - * - * @return void - */ - public static function enqueue_scripts_styles() { - if ( defined( 'SM_SCRIPTS_STYLES_ENQUEUED' ) ) { - return; - } - - if ( ! ( defined( 'SM_ENQUEUE_SCRIPTS_STYLES' ) || 'wpfc_sermon' === get_post_type() || is_post_type_archive( 'wpfc_sermon' ) ) - ) { - return; - } - - if ( ! \SermonManager::getOption( 'css' ) ) { - wp_enqueue_style( 'wpfc-sm-styles' ); - wp_enqueue_style( 'dashicons' ); - - // Load theme-specific styling, if there's any. - wp_enqueue_style( 'wpfc-sm-style-' . get_option( 'template' ) ); - - do_action( 'sm_enqueue_css' ); - do_action( 'sm_enqueue_js' ); - } - - // Load top theme-specific styling, if there's any. - wp_enqueue_style( 'wpfc-sm-style-theme' ); - - switch ( \SermonManager::getOption( 'player' ) ) { - case 'mediaelement': - wp_enqueue_style( 'wp-mediaelement' ); - wp_enqueue_script( 'wp-mediaelement' ); - - break; - case 'plyr': - wp_localize_script( 'wpfc-sm-plyr-loader', 'sm_data', array( - 'debug' => defined( 'WP_DEBUG' ) && WP_DEBUG === true ? 1 : 0, - 'use_native_player_safari' => \SermonManager::getOption( 'use_native_player_safari', false ) ? 1 : 0, - ) ); - - if ( SermonManager::getOption( 'disable_cloudflare_plyr' ) ) { - global $wp_scripts; - - $GLOBALS['sm_plyr_scripts'] = array( - 'wpfc-sm-plyr-loader' => $wp_scripts->registered['wpfc-sm-plyr-loader'], - 'wpfc-sm-plyr' => $wp_scripts->registered['wpfc-sm-plyr'], - ); - - add_action( 'wp_print_scripts', array( __CLASS__, 'maybe_print_cloudflare_plyr' ) ); - add_action( 'wp_print_footer_scripts', array( __CLASS__, 'maybe_print_cloudflare_plyr' ) ); - } else { - wp_enqueue_script( 'wpfc-sm-plyr' ); - wp_enqueue_script( 'wpfc-sm-plyr-loader' ); - } - - wp_enqueue_style( 'wpfc-sm-plyr-css' ); - - break; - } - - if ( ! apply_filters( 'verse_popup_disable', \SermonManager::getOption( 'verse_popup' ) ) ) { - wp_enqueue_script( 'wpfc-sm-verse-script' ); - - // Get options for JS. - $bible_version = \SermonManager::getOption( 'verse_bible_version' ); - $bible_versions = array( - 'LBLA95', - 'NBLH', - 'NVI', - 'RVR60', - 'RVA', - ); - - if ( strpos( get_locale(), 'es_' ) === false && in_array( $bible_version, $bible_versions ) ) { - $bible_version = 'ESV'; - } - - $verse_popup_data = array( - 'bible_version' => $bible_version, - 'language' => strpos( get_locale(), 'es_' ) !== false ? 'es_ES' : 'en_US', - ); - - /** - * Allows you to filter the variables passed to the verse script. - * - * @since 2.15.9 - */ - $verse_popup_data = apply_filters( 'sm_verse_popup_data', $verse_popup_data ); - - wp_localize_script( 'wpfc-sm-verse-script', 'verse', $verse_popup_data ); - } - - // Do not enqueue twice. - define( 'SM_SCRIPTS_STYLES_ENQUEUED', true ); - } - - /** - * Append the terms of Sermon Manager taxonomies to the list - * of sermon (post) classes generated by post_class(). - * - * @param array $classes An array of existing post classes. - * @param array $class An array of additional classes added to the post (not needed). - * @param int $post_id The post ID. - * - * @return array Modified class list. - */ - public static function add_additional_sermon_classes( $classes, $class, $post_id ) { - if ( 'wpfc_sermon' !== get_post_type( $post_id ) ) { - return $classes; - } - - $additional_classes = array(); - - $taxonomies = array( - 'wpfc_preacher', - 'wpfc_sermon_series', - 'wpfc_bible_book', - 'wpfc_sermon_topics', - ); - - foreach ( $taxonomies as $taxonomy ) { - foreach ( (array) get_the_terms( $post_id, $taxonomy ) as $term ) { - if ( empty( $term->slug ) ) { - continue; - } - - if ( ! in_array( $term->slug, $classes ) ) { - $term_class = sanitize_html_class( $term->slug, $term->term_id ); - - if ( is_numeric( $term_class ) || ! trim( $term_class, '-' ) ) { - $term_class = $term->term_id; - } - - $additional_classes[] = esc_attr( sanitize_html_class( $taxonomy . '-' . $term_class, $taxonomy . '-' . $term->term_id ) ); - } - } - } - - if ( is_archive() ) { - $additional_classes[] = 'wpfc-sermon'; - } else { - $additional_classes[] = 'wpfc-sermon-single'; - } - - /** - * Allows filtering of additional Sermon Manager classes - * - * @param array $classes The array of added classes - * - * @since 2.12.0 - */ - $additional_classes = apply_filters( 'wpfc_sermon_classes', $additional_classes, $classes, $post_id ); - - return array_merge( $additional_classes, $classes ); - } - - /** - * Add images sizes for Series and Speakers - * - * @return void - */ - public static function add_image_sizes() { - if ( function_exists( 'add_image_size' ) ) { - add_image_size( 'sermon_small', 75, 75, true ); - add_image_size( 'sermon_medium', 300, 200, true ); - add_image_size( 'sermon_wide', 940, 350, true ); - } - } - - /** - * Workaround for Cloudflare caching. - * - * @since 2.15.2 - */ - public static function maybe_print_cloudflare_plyr() { - if ( defined( 'SM_CLOUDFLARE_DONE' ) ) { - return; - } - - if ( ! isset( $GLOBALS['sm_plyr_scripts'] ) ) { - return; - } - - foreach ( $GLOBALS['sm_plyr_scripts'] as $script ) { - echo ''; - - if ( ! empty( $script->extra ) ) { - /* @noinspection BadExpressionStatementJS */ - printf( "\n", $script->extra['data'] ); - } - } - - define( 'SM_CLOUDFLARE_DONE', true ); - } - - /** - * Registers all of the scripts and styles, without enqueueing them. - * - * It will be removed in future in favor of Script_Manager class. - * - * @since 2.15.7 - */ - public static function register_scripts_styles() { - wp_register_script( 'wpfc-sm-fb-player', SM_URL . 'assets/vendor/js/facebook-video.js', array(), SM_VERSION ); - wp_register_script( 'wpfc-sm-plyr', SM_URL . 'assets/vendor/js/plyr.polyfilled' . ( ( defined( 'WP_DEBUG' ) && WP_DEBUG === true ) ? '' : '.min' ) . '.js', array(), '3.4.7', \SermonManager::getOption( 'player_js_footer' ) ); - wp_register_script( 'wpfc-sm-plyr-loader', SM_URL . 'assets/js/plyr' . ( ( defined( 'WP_DEBUG' ) && WP_DEBUG === true ) ? '' : '.min' ) . '.js', array( 'wpfc-sm-plyr' ), SM_VERSION ); - wp_register_script( 'wpfc-sm-verse-script', SM_URL . 'assets/vendor/js/verse.js', array(), SM_VERSION ); - wp_register_style( 'wpfc-sm-styles', SM_URL . 'assets/css/sermon.min.css', array(), SM_VERSION ); - wp_register_style( 'wpfc-sm-plyr-css', SM_URL . 'assets/vendor/css/plyr.min.css', array(), '3.4.7' ); - - // Register theme-specific styling, if there's any. - if ( file_exists( SM_PATH . 'assets/css/theme-specific/' . get_option( 'template' ) . '.css' ) ) { - wp_register_style( 'wpfc-sm-style-' . get_option( 'template' ), SM_URL . 'assets/css/theme-specific/' . get_option( 'template' ) . '.css', array( 'wpfc-sm-styles' ), SM_VERSION ); - } - - // Register top theme-specific styling, if there's any. - if ( file_exists( get_stylesheet_directory() . '/sermon.css' ) ) { - wp_register_style( 'wpfc-sm-style-theme', get_stylesheet_directory_uri() . '/sermon.css', array( 'wpfc-sm-styles' ), SM_VERSION ); - } - } -} - -// Initialize Sermon Manager. -SermonManager::get_instance(); - -// Fix shortcode pagination. -add_filter( 'redirect_canonical', function ( $redirect_url ) { - global $wp_query; - - if ( get_query_var( 'paged' ) && $wp_query->post && false !== strpos( $wp_query->post->post_content, '[sermons' ) ) { - return false; - } - - return $redirect_url; -} ); + +
+

+ PHP %s. + // translators: %2$s required PHP version, see msgid "PHP %s", effectively PHP %s. + echo wp_sprintf( esc_html__( 'You are running %1$s, but Sermon Manager requires at least %2$s.', 'sermon-manager-for-wordpress' ), '' . wp_sprintf( esc_html__( 'PHP %s', 'sermon-manager-for-wordpress' ), PHP_VERSION ) . '', '' . wp_sprintf( esc_html__( 'PHP %s', 'sermon-manager-for-wordpress' ), '5.3.0' ) . '' ); + ?> +

+
+ _includes(); + + // Attach actions. + $this->_init_actions(); + + // Exec stuff after load. + do_action( 'sm_after_plugin_load' ); + } + + /** + * Include Sermon Manager files. + * + * @return void + */ + private function _includes() { + /** + * General includes. + */ + include SM_PATH . 'includes/class-sm-autoloader.php'; // Autoloader. + include SM_PATH . 'includes/sm-core-functions.php'; // Core Sermon Manager functions. + include SM_PATH . 'includes/class-sm-dates.php'; // Dates operations. + include SM_PATH . 'includes/class-sm-dates-wp.php'; // Attach to WP filters. + include SM_PATH . 'includes/class-sm-api.php'; // API. + include SM_PATH . 'includes/class-sm-post-types.php'; // Register post type, taxonomies, etc. + include SM_PATH . 'includes/class-sm-install.php'; // Install and update functions. + include SM_PATH . 'includes/class-sm-roles.php'; // Adds roles support. + include SM_PATH . 'includes/sm-deprecated-functions.php'; // Deprecated SM functions. + include SM_PATH . 'includes/sm-formatting-functions.php'; // Data formatting. + include SM_PATH . 'includes/vendor/taxonomy-images/taxonomy-images.php'; // Images for Custom Taxonomies. + include SM_PATH . 'includes/vendor/entry-views.php'; // Entry Views Tracking. + include SM_PATH . 'includes/class-sm-shortcodes.php'; // Shortcodes. + include SM_PATH . 'includes/class-sm-widget-recent-sermons.php'; // Recent sermons widget. + include SM_PATH . 'includes/sm-template-functions.php'; // Template functions. + include SM_PATH . 'includes/sm-podcast-functions.php'; // Podcast Functions. + + /** + * Admin only includes. + */ + if ( is_admin() ) { + include SM_PATH . 'includes/admin/class-sm-admin.php'; // Admin init class. + include SM_PATH . 'includes/admin/sm-cmb-functions.php'; // CMB2 Meta Fields functions. + include SM_PATH . 'includes/vendor/CMB2/init.php'; // Metaboxes. + } + } + + /** + * Instead of loading options variable each time in every code snippet, let's have it in one place. + * + * @param string $name Option name. + * @param string $default Default value to return if option is not set (defaults to empty string). + * + * @return mixed Returns option value or an empty string if it doesn't exist. Just like WP does. + */ + public static function getOption( $name = '', $default = '' ) { // phpcs:ignore + if ( ! class_exists( 'SM_Admin_Settings' ) ) { + include_once SM_PATH . 'includes/admin/class-sm-admin-settings.php'; + } + + return SM_Admin_Settings::get_option( $name, $default ); + } + + /** + * Creates or returns an instance of this class. + * + * @return SermonManager A single instance of this class. + */ + public static function get_instance() { + if ( null == self::$instance ) { + self::$instance = new self; + } + + return self::$instance; + } + + /** + * Saves whole Sermon HTML markup into post content for better search compatibility. + * + * @param int $post_ID Post ID. + * @param WP_Post $post Post object. + * @param bool $skip_check Disables check of "SM_SAVING_POST" constant. + * + * @since 2.8 + */ + public function render_sermon_into_content( $post_ID = 0, $post = null, $skip_check = false ) { + global $wpdb, $sm_skip_content_check; + + if ( null === $post ) { + $post = get_post( $post_ID ); + } + + if ( 'wpfc_sermon' !== $post->post_type ) { + return; + } + + if ( ! $skip_check ) { + if ( defined( 'SM_SAVING_POST' ) ) { + return; + } else { + define( 'SM_SAVING_POST', 1 ); + } + } + + $content = ''; + $bible_passage = get_post_meta( $post_ID, 'bible_passage', true ); + $has_preachers = has_term( '', 'wpfc_preacher', $post ); + $has_series = has_term( '', 'wpfc_sermon_series', $post ); + + if ( $bible_passage ) { + $content .= __( 'Bible Text:', 'sermon-manager-for-wordpress' ) . ' ' . $bible_passage; + } + + if ( $has_preachers ) { + if ( $bible_passage ) { + $content .= ' | '; + } + + $content .= ( \SermonManager::getOption( 'preacher_label', '' ) ? \SermonManager::getOption( 'preacher_label', 'Preacher' ) . ':' : __( 'Preacher:', 'sermon-manager-for-wordpress' ) ) . ' '; + $content .= strip_tags( get_the_term_list( $post->ID, 'wpfc_preacher', '', ', ', '' ) ); + } + + if ( $has_series ) { + if ( $has_preachers ) { + $content .= ' | '; + } + $content .= strip_tags( get_the_term_list( $post->ID, 'wpfc_sermon_series', __( 'Series:', 'sermon-manager-for-wordpress' ) . ' ', ', ', '' ) ); + } + + $description = strip_tags( trim( get_post_meta( $post->ID, 'sermon_description', true ) ) ); + + if ( '' !== $description ) { + $content .= ' | ' . $description; + } + + /** + * Allows to modify sermon content that will be saved as "post_content". + * + * @param string $content Textual content (no HTML). + * @param int $post_ID ID of the sermon. + * @param WP_Post $post Sermon post object. + * @param bool $skip_check Basically, a way to identify if the function is being executed from the update function or not. + * + * @since 2.11.0 + */ + $content = apply_filters( 'sm_sermon_post_content', $content, $post_ID, $post, $skip_check ); + $content = apply_filters( "sm_sermon_post_content_$post_ID", $content, $post_ID, $post, $skip_check ); + + if ( ! $sm_skip_content_check ) { + if ( ! \SermonManager::getOption( 'post_content_enabled', 1 ) ) { + $content = ''; + } + } + + $wpdb->query( + $wpdb->prepare( + "UPDATE $wpdb->posts SET `post_content` = %s WHERE `ID` = %s", + array( + $content, + $post_ID, + ) + ) + ); + } + + /** + * Fixes Sermons ordering. Uses `sermon_date` meta instead of sermon's published date. + * + * @param WP_Query $query The query. + * + * @return void + */ + public static function fix_sermons_ordering( $query ) { + if ( ! is_admin() && ( $query->is_main_query() ) ) { + if ( is_post_type_archive( 'wpfc_sermon' ) || is_tax( sm_get_taxonomies() ) ) { + $query->set( 'meta_key', 'sermon_date' ); + $query->set( 'meta_value_num', time() ); + $query->set( 'meta_compare', '<=' ); + $query->set( 'orderby', 'meta_value_num' ); + $query->set( 'order', 'DESC' ); + + /** + * Allows to filter the sermon query. + * + * @since 2.13.5 + * + * @param WP_Query $query The query. + */ + do_action( 'sm_query', $query ); + } + } + } + + /** + * Load plugin translations + * + * @return void + */ + public static function load_translations() { + load_plugin_textdomain( 'sermon-manager-for-wordpress', false, plugin_basename( dirname( __FILE__ ) ) . '/languages' ); + } + + /** + * Enqueue Sermon Manager scripts and styles + * + * @return void + */ + public static function enqueue_scripts_styles() { + if ( defined( 'SM_SCRIPTS_STYLES_ENQUEUED' ) ) { + return; + } + + if ( ! ( defined( 'SM_ENQUEUE_SCRIPTS_STYLES' ) || 'wpfc_sermon' === get_post_type() || is_post_type_archive( 'wpfc_sermon' ) ) + ) { + return; + } + + if ( ! \SermonManager::getOption( 'css' ) ) { + wp_enqueue_style( 'wpfc-sm-styles' ); + wp_enqueue_style( 'dashicons' ); + + // Load theme-specific styling, if there's any. + wp_enqueue_style( 'wpfc-sm-style-' . get_option( 'template' ) ); + + do_action( 'sm_enqueue_css' ); + do_action( 'sm_enqueue_js' ); + } + + // Load top theme-specific styling, if there's any. + wp_enqueue_style( 'wpfc-sm-style-theme' ); + + switch ( \SermonManager::getOption( 'player' ) ) { + case 'mediaelement': + wp_enqueue_style( 'wp-mediaelement' ); + wp_enqueue_script( 'wp-mediaelement' ); + + break; + case 'plyr': + wp_localize_script( + 'wpfc-sm-plyr-loader', + 'sm_data', + array( + 'debug' => defined( 'WP_DEBUG' ) && WP_DEBUG === true ? 1 : 0, + 'use_native_player_safari' => \SermonManager::getOption( 'use_native_player_safari', false ) ? 1 : 0, + ) + ); + + if ( SermonManager::getOption( 'disable_cloudflare_plyr' ) ) { + global $wp_scripts; + + $GLOBALS['sm_plyr_scripts'] = array( + 'wpfc-sm-plyr-loader' => $wp_scripts->registered['wpfc-sm-plyr-loader'], + 'wpfc-sm-plyr' => $wp_scripts->registered['wpfc-sm-plyr'], + ); + + add_action( 'wp_print_scripts', array( __CLASS__, 'maybe_print_cloudflare_plyr' ) ); + add_action( 'wp_print_footer_scripts', array( __CLASS__, 'maybe_print_cloudflare_plyr' ) ); + } else { + wp_enqueue_script( 'wpfc-sm-plyr' ); + wp_enqueue_script( 'wpfc-sm-plyr-loader' ); + } + + wp_enqueue_style( 'wpfc-sm-plyr-css' ); + + break; + } + + if ( ! apply_filters( 'verse_popup_disable', \SermonManager::getOption( 'verse_popup' ) ) ) { // phpcs:ignore + wp_enqueue_script( 'wpfc-sm-verse-script' ); + + // Get options for JS. + $bible_version = \SermonManager::getOption( 'verse_bible_version' ); + $bible_versions = array( + 'LBLA95', + 'NBLH', + 'NVI', + 'RVR60', + 'RVA', + ); + + if ( strpos( get_locale(), 'es_' ) === false && in_array( $bible_version, $bible_versions ) ) { + $bible_version = 'ESV'; + } + + $verse_popup_data = array( + 'bible_version' => $bible_version, + 'language' => strpos( get_locale(), 'es_' ) !== false ? 'es_ES' : 'en_US', + ); + + /** + * Allows you to filter the variables passed to the verse script. + * + * @since 2.15.9 + */ + $verse_popup_data = apply_filters( 'sm_verse_popup_data', $verse_popup_data ); + + wp_localize_script( 'wpfc-sm-verse-script', 'verse', $verse_popup_data ); + } + + // Do not enqueue twice. + define( 'SM_SCRIPTS_STYLES_ENQUEUED', true ); + } + + /** + * Append the terms of Sermon Manager taxonomies to the list + * of sermon (post) classes generated by post_class(). + * + * @param array $classes An array of existing post classes. + * @param array $class An array of additional classes added to the post (not needed). + * @param int $post_id The post ID. + * + * @return array Modified class list. + */ + public static function add_additional_sermon_classes( $classes, $class, $post_id ) { + if ( 'wpfc_sermon' !== get_post_type( $post_id ) ) { + return $classes; + } + + // Disable PHPCS warning. + unset( $class ); + + $additional_classes = array(); + + $taxonomies = array( + 'wpfc_preacher', + 'wpfc_sermon_series', + 'wpfc_bible_book', + 'wpfc_sermon_topics', + ); + + foreach ( $taxonomies as $taxonomy ) { + foreach ( (array) get_the_terms( $post_id, $taxonomy ) as $term ) { + if ( empty( $term->slug ) ) { + continue; + } + + if ( ! in_array( $term->slug, $classes ) ) { + $term_class = sanitize_html_class( $term->slug, $term->term_id ); + + if ( is_numeric( $term_class ) || ! trim( $term_class, '-' ) ) { + $term_class = $term->term_id; + } + + $additional_classes[] = esc_attr( sanitize_html_class( $taxonomy . '-' . $term_class, $taxonomy . '-' . $term->term_id ) ); + } + } + } + + if ( is_archive() ) { + $additional_classes[] = 'wpfc-sermon'; + } else { + $additional_classes[] = 'wpfc-sermon-single'; + } + + /** + * Allows filtering of additional Sermon Manager classes + * + * @param array $classes The array of added classes + * + * @since 2.12.0 + */ + $additional_classes = apply_filters( 'wpfc_sermon_classes', $additional_classes, $classes, $post_id ); + + return array_merge( $additional_classes, $classes ); + } + + /** + * Add images sizes for Series and Speakers + * + * @return void + */ + public static function add_image_sizes() { + if ( function_exists( 'add_image_size' ) ) { + add_image_size( 'sermon_small', 75, 75, true ); + add_image_size( 'sermon_medium', 300, 200, true ); + add_image_size( 'sermon_wide', 940, 350, true ); + } + } + + /** + * Workaround for Cloudflare caching. + * + * @since 2.15.2 + */ + public static function maybe_print_cloudflare_plyr() { + if ( defined( 'SM_CLOUDFLARE_DONE' ) ) { + return; + } + + if ( ! isset( $GLOBALS['sm_plyr_scripts'] ) ) { + return; + } + + foreach ( $GLOBALS['sm_plyr_scripts'] as $script ) { + echo ''; + + if ( ! empty( $script->extra ) ) { + /* @noinspection BadExpressionStatementJS */ + printf( "\n", $script->extra['data'] ); + } + } + + define( 'SM_CLOUDFLARE_DONE', true ); + } + + /** + * Registers all of the scripts and styles, without enqueueing them. + * + * It will be removed in future in favor of Script_Manager class. + * + * @since 2.15.7 + */ + public static function register_scripts_styles() { + wp_register_script( 'wpfc-sm-fb-player', SM_URL . 'assets/vendor/js/facebook-video.js', array(), SM_VERSION ); + wp_register_script( 'wpfc-sm-plyr', SM_URL . 'assets/vendor/js/plyr.polyfilled' . ( ( defined( 'WP_DEBUG' ) && WP_DEBUG === true ) ? '' : '.min' ) . '.js', array(), '3.4.7', \SermonManager::getOption( 'player_js_footer' ) ); + wp_register_script( 'wpfc-sm-plyr-loader', SM_URL . 'assets/js/plyr' . ( ( defined( 'WP_DEBUG' ) && WP_DEBUG === true ) ? '' : '.min' ) . '.js', array( 'wpfc-sm-plyr' ), SM_VERSION ); + wp_register_script( 'wpfc-sm-verse-script', SM_URL . 'assets/vendor/js/verse.js', array(), SM_VERSION ); + wp_register_style( 'wpfc-sm-styles', SM_URL . 'assets/css/sermon.min.css', array(), SM_VERSION ); + wp_register_style( 'wpfc-sm-plyr-css', SM_URL . 'assets/vendor/css/plyr.min.css', array(), '3.4.7' ); + + // Register theme-specific styling, if there's any. + if ( file_exists( SM_PATH . 'assets/css/theme-specific/' . get_option( 'template' ) . '.css' ) ) { + wp_register_style( 'wpfc-sm-style-' . get_option( 'template' ), SM_URL . 'assets/css/theme-specific/' . get_option( 'template' ) . '.css', array( 'wpfc-sm-styles' ), SM_VERSION ); + } + + // Register top theme-specific styling, if there's any. + if ( file_exists( get_stylesheet_directory() . '/sermon.css' ) ) { + wp_register_style( 'wpfc-sm-style-theme', get_stylesheet_directory_uri() . '/sermon.css', array( 'wpfc-sm-styles' ), SM_VERSION ); + } + } + + /** + * Executes required actions. + * + * @since 2.15.13 + */ + protected function _init_actions() { + // Load translations. + add_action( 'after_setup_theme', array( $this, 'load_translations' ) ); + // Register & enqueue scripts & styles. + add_action( 'wp_enqueue_scripts', array( $this, 'register_scripts_styles' ) ); + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts_styles' ) ); + add_action( 'wp_footer', array( $this, 'register_scripts_styles' ) ); + add_action( 'wp_footer', array( $this, 'enqueue_scripts_styles' ) ); + // Append custom classes to individual sermons. + add_filter( 'post_class', array( $this, 'add_additional_sermon_classes' ), 10, 3 ); + // Add Sermon Manager image sizes. + add_action( 'after_setup_theme', array( $this, 'add_image_sizes' ) ); + // Fix Sermon ordering. + add_action( 'pre_get_posts', array( $this, 'fix_sermons_ordering' ), 90 ); + // No idea... better not touch it for now. + add_filter( 'sermon-images-disable-public-css', '__return_true' ); + // Attach to fix WP dates. + SM_Dates_WP::hook(); + // Render sermon HTML for search compatibility. + add_action( 'wp_insert_post', array( $this, 'render_sermon_into_content' ), 10, 2 ); + // Remove SB Help from SM pages, since it messes up the formatting. + add_action( + 'contextual_help', + function () { + $screen = get_current_screen(); + $screen_id = $screen ? $screen->id : ''; + + if ( in_array( $screen_id, sm_get_screen_ids() ) ) { + remove_action( 'contextual_help', 'sb_add_contextual_help' ); + } + }, + 0 + ); + // Allow usage of remote URLs for attachments (used for images imported from SE). + add_filter( + 'wp_get_attachment_url', + function ( $url, $attachment_id ) { + $db_url = get_post_meta( $attachment_id, '_wp_attached_file', true ); + + if ( $db_url && parse_url( $db_url, PHP_URL_SCHEME ) !== null ) { + return $db_url; + } + + return $url; + }, + 10, + 2 + ); + // Allows reimport after sermon deletion. + add_action( + 'before_delete_post', + function ( $id ) { + global $post_type; + + if ( 'wpfc_sermon' !== $post_type ) { + return; + } + + $sermons_se = get_option( '_sm_import_se_messages' ); + $sermons_sb = get_option( '_sm_import_sb_messages' ); + + $sermon_messages = array( $sermons_se, $sermons_sb ); + + foreach ( $sermon_messages as $offset0 => &$sermons_array ) { + foreach ( $sermons_array as $offset1 => $value ) { + if ( $value['new_id'] == $id ) { + unset( $sermons_array[ $offset1 ] ); + update_option( 0 === $offset0 ? '_sm_import_se_messages' : '_sm_import_sb_messages', $sermons_array ); + + return; + } + } + } + } + ); + + // Temporary hook for importing until API is properly done. + add_action( + 'admin_init', + function () { + if ( isset( $_GET['page'] ) && 'sm-import-export' === $_GET['page'] ) { + if ( isset( $_GET['doimport'] ) ) { + $class = null; + + switch ( $_GET['doimport'] ) { + case 'sb': + $class = new SM_Import_SB(); + break; + case 'se': + $class = new SM_Import_SE(); + break; + case 'exsm': + $class = new SM_Export_SM(); + $class->sermon_export_wp(); + die(); + break; + case 'sm': + $class = new SM_Import_SM(); + break; + } + + if ( null !== $class ) { + $class->import(); + add_action( + 'admin_notices', + function () { + if ( ! ! \SermonManager::getOption( 'debug_import' ) ) : + ?> +
+

Debug info:

+
+
+ + +
+

+
+ +
+

executed.

+
+ $functions ) { + foreach ( $functions as $function ) { + if ( ! get_option( 'wp_sm_updater_' . $function . '_done', 0 ) ) { + $at_least_one = true; + + if ( ! function_exists( $function ) ) { + require_once SM_PATH . 'includes/sm-update-functions.php'; + } + + call_user_func( $function ); + + ?> +
+

executed.

+
+ +
+

All update functions have already been executed.

+
+ = 10 ) { + global $wpdb, $sm_skip_content_check; + + $sm_skip_content_check = true; + + $sm = SermonManager::get_instance(); + + // All sermons. + $sermons = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE `post_type` = %s", 'wpfc_sermon' ) ); + + foreach ( $sermons as $sermon ) { + $sermon_id = $sermon->ID; + + if ( 11 === $value ) { + $sm->render_sermon_into_content( $sermon_id, null, true ); + } else { + $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET `post_content` = '' WHERE `ID` = %d", $sermon_id ) ); + } + } + + $sm_skip_content_check = false; + + $value = intval( substr( $value, 1 ) ); + } + + return $value; + } + ); + + // Remove audio ID if it's not needed. + add_action( + 'save_post_wpfc_sermon', + function ( $post_ID, $post, $update ) { + if ( ! isset( $_POST['sermon_audio_id'] ) && ! isset( $_POST['sermon_audio'] ) ) { + return; + } + + $audio_id = &$_POST['sermon_audio_id']; + $audio_url = $_POST['sermon_audio']; + + // Attempt to get remote file size. + if ( $audio_url && ! $audio_id ) { + // Put our options as default (sorry). + stream_context_set_default( + array( + 'http' => array( + 'method' => 'HEAD', + 'timeout' => 2, + ), + ) + ); + + // Do the request. + $head = array_change_key_case( get_headers( $audio_url, 1 ) ); + + if ( $head && isset( $head['content-length'] ) ) { + update_post_meta( $post_ID, '_wpfc_sermon_size', $head['content-length'] ?: 0 ); + } + } + + if ( ! $audio_id ) { + return; + } + + $parsed_audio_url = parse_url( $audio_url, PHP_URL_HOST ); + $parsed_website_url = parse_url( home_url(), PHP_URL_HOST ); + + if ( $parsed_audio_url !== $parsed_website_url ) { + $audio_id = ''; + update_post_meta( $post_ID, 'sermon_audio_id', $audio_id ); + } + + // Attempt to get audio file duration. + if ( $audio_id ) { + $the_file = wp_get_attachment_metadata( $audio_id ); + + if ( $the_file ) { + if ( isset( $the_file['length'] ) ) { + $length = date( 'H:i:s', $the_file['length'] ); + $_POST['_wpfc_sermon_duration'] = $length; + update_post_meta( $post_ID, '_wpfc_sermon_duration', $length ); + } + + if ( isset( $the_file['filesize'] ) ) { + $_POST['_wpfc_sermon_size'] = $the_file['filesize']; + update_post_meta( $post_ID, '_wpfc_sermon_size', $the_file['filesize'] ); + } + } + } + }, + 40, + 3 + ); + + // Allows user to not include themselves into views count. + add_filter( + 'sm_views_add_view', + function () { + if ( ! SermonManager::getOption( 'enable_views_count_logged_in', true ) ) { + if ( is_user_logged_in() && ( current_user_can( 'editor' ) || current_user_can( 'administrator' ) ) ) { + return false; + } + } + + return true; + } + ); + + // Add a notice if output buffering is disabled. + add_action( + 'admin_notices', + function () { + if ( ! SM_OB_ENABLED ) { + ?> +
+

+ Sermon Manager". + echo wp_sprintf( __( '%s requires output buffering to be turned on to display content. It is currently off. Please enable it or contact your hosting provider for help. Most of plugin functionality will be disabled until output buffering is enabled.', 'sermon-manager-for-wordpress' ), '' . __( 'Sermon Manager', 'sermon-manager-for-wordpress' ) . '' ); + ?> +

+
+ post && false !== strpos( $wp_query->post->post_content, '[sermons' ) ) { + return false; + } + + return $redirect_url; + } +); diff --git a/views/archive-wpfc_sermon.php b/views/archive-wpfc_sermon.php index a233530..cb41a37 100644 --- a/views/archive-wpfc_sermon.php +++ b/views/archive-wpfc_sermon.php @@ -37,6 +37,14 @@ echo mfn_pagination(); elseif ( function_exists( 'presscore_complex_pagination' ) ) : presscore_complex_pagination( $GLOBALS['wp_query'] ); + elseif ( function_exists( 'cro_paging' ) ) : + cro_paging(); + elseif ( function_exists( 'twentynineteen_the_posts_navigation' ) ) : + twentynineteen_the_posts_navigation(); + elseif ( function_exists( 'exodoswp_pagination' ) ) : + echo '
'; else : the_posts_pagination(); endif; diff --git a/views/partials/content-sermon-archive.php b/views/partials/content-sermon-archive.php index 935c2b8..e5e63a7 100644 --- a/views/partials/content-sermon-archive.php +++ b/views/partials/content-sermon-archive.php @@ -28,19 +28,28 @@ $args = $GLOBALS['wpfc_partial_args']; +$theme = get_option( 'template' ); + +$sm_image_html = ''; + +if ( get_sermon_image_url() && ! \SermonManager::getOption( 'disable_image_archive' ) ) { + $sm_image_html .= '
'; + $sm_image_html .= '
'; + $sm_image_html .= '
'; +} + ?>
> -
- -
- -
-
-
+ + + +
+ + +
diff --git a/views/partials/content-sermon-filtering.php b/views/partials/content-sermon-filtering.php index 4a5d2b6..97b7527 100644 --- a/views/partials/content-sermon-filtering.php +++ b/views/partials/content-sermon-filtering.php @@ -40,7 +40,7 @@ ?>
- " title="" id="" - onchange="if(this.options[this.selectedIndex].value !== ''){return this.form.submit()}else{window.location = '';}" + onchange="if(this.options[this.selectedIndex].value !== ''){return this.form.submit()}else{window.location = window.location.href.split('?')[0];}" autocomplete="off" > diff --git a/views/partials/content-sermon-wrapper-end.php b/views/partials/content-sermon-wrapper-end.php index b61877b..41fa1d5 100644 --- a/views/partials/content-sermon-wrapper-end.php +++ b/views/partials/content-sermon-wrapper-end.php @@ -39,6 +39,9 @@ echo '
'; get_sidebar(); break; + case 'twentynineteen': + echo ''; + break; case 'Divi': echo ''; get_sidebar(); @@ -76,8 +79,12 @@ echo '
'; break; case 'x': + $fullwidth = get_post_meta( get_the_ID(), '_x_post_layout', true ); // phpcs:ignore + echo '
'; - get_sidebar(); + if ( 'on' != $fullwidth ) : + get_sidebar(); + endif; echo '
'; break; case 'genesis': @@ -110,6 +117,23 @@ echo '
'; do_action( 'presscore_after_content' ); break; + case 'dunamis': + $croma = get_option( 'cromatic' ); + $sidebarrule = ( isset( $croma['cro_catsidebar'] ) ) ? esc_attr( $croma['cro_catsidebar'] ) : 3; + + echo '
'; + + if ( $sidebarrule != 1 && $sidebarrule != 2 ) { + echo '
'; + get_sidebar(); + echo '
'; + } + + echo ''; + break; + case 'exodoswp': + echo ''; + break; default: if ( SM_OB_ENABLED ) { ob_start(); diff --git a/views/partials/content-sermon-wrapper-start.php b/views/partials/content-sermon-wrapper-start.php index e77093f..0a71a48 100644 --- a/views/partials/content-sermon-wrapper-start.php +++ b/views/partials/content-sermon-wrapper-start.php @@ -43,6 +43,9 @@ case 'twentyseventeen': echo '
'; break; + case 'twentynineteen': + echo '
'; + break; case 'Divi': echo '
'; break; @@ -65,7 +68,15 @@ echo '
'; break; case 'x': - echo '
'; + if ( function_exists( 'x_main_content_class' ) ) { + ob_start(); + x_main_content_class(); + $additional_classes .= ob_get_clean(); + } else { + $additional_classes .= 'x-main left'; // Use some default. + } + + echo '
'; break; case 'genesis': echo '