diff --git a/composer.json b/composer.json
index 8e08be0c..b70a181e 100644
--- a/composer.json
+++ b/composer.json
@@ -24,5 +24,9 @@
},
"autoload": {
"psr-4": {"OrganizeSeries\\": "src/"}
+ },
+ "require-dev": {
+ "automattic/vipwpcs": "^2.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1"
}
}
diff --git a/composer.lock b/composer.lock
index 026f80f4..838630a2 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "8997a3acc12258b36251b4b33c46d02e",
+ "content-hash": "f634cf443e7af9be31da177b83e6317a",
"packages": [
{
"name": "alledia/edd-sl-plugin-updater",
@@ -563,7 +563,290 @@
"time": "2020-10-23T09:01:57+00:00"
}
],
- "packages-dev": [],
+ "packages-dev": [
+ {
+ "name": "automattic/vipwpcs",
+ "version": "2.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/VIP-Coding-Standards.git",
+ "reference": "6cd0a6a82bc0ac988dbf9d6a7c2e293dc8ac640b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/VIP-Coding-Standards/zipball/6cd0a6a82bc0ac988dbf9d6a7c2e293dc8ac640b",
+ "reference": "6cd0a6a82bc0ac988dbf9d6a7c2e293dc8ac640b",
+ "shasum": ""
+ },
+ "require": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7",
+ "php": ">=5.4",
+ "sirbrillig/phpcs-variable-analysis": "^2.11.1",
+ "squizlabs/php_codesniffer": "^3.5.5",
+ "wp-coding-standards/wpcs": "^2.3"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-console-highlighter": "^0.5",
+ "php-parallel-lint/php-parallel-lint": "^1.0",
+ "phpcompatibility/php-compatibility": "^9",
+ "phpcsstandards/phpcsdevtools": "^1.0",
+ "phpunit/phpunit": "^4 || ^5 || ^6 || ^7"
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/Automattic/VIP-Coding-Standards/graphs/contributors"
+ }
+ ],
+ "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress VIP minimum coding conventions",
+ "keywords": [
+ "phpcs",
+ "standards",
+ "wordpress"
+ ],
+ "support": {
+ "issues": "https://github.com/Automattic/VIP-Coding-Standards/issues",
+ "source": "https://github.com/Automattic/VIP-Coding-Standards",
+ "wiki": "https://github.com/Automattic/VIP-Coding-Standards/wiki"
+ },
+ "time": "2021-09-29T16:20:23+00:00"
+ },
+ {
+ "name": "dealerdirect/phpcodesniffer-composer-installer",
+ "version": "v0.7.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
+ "reference": "fe390591e0241955f22eb9ba327d137e501c771c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c",
+ "reference": "fe390591e0241955f22eb9ba327d137e501c771c",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0",
+ "php": ">=5.3",
+ "squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0"
+ },
+ "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"
+ ],
+ "support": {
+ "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
+ "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
+ },
+ "time": "2020-12-07T18:04:37+00:00"
+ },
+ {
+ "name": "sirbrillig/phpcs-variable-analysis",
+ "version": "v2.11.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sirbrillig/phpcs-variable-analysis.git",
+ "reference": "3fad28475bfbdbf8aa5c440f8a8f89824983d85e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/3fad28475bfbdbf8aa5c440f8a8f89824983d85e",
+ "reference": "3fad28475bfbdbf8aa5c440f8a8f89824983d85e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4.0",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
+ "limedeck/phpunit-detailed-printer": "^3.1 || ^4.0 || ^5.0",
+ "phpstan/phpstan": "^0.11.8",
+ "phpunit/phpunit": "^5.0 || ^6.5 || ^7.0 || ^8.0",
+ "sirbrillig/phpcs-import-detection": "^1.1"
+ },
+ "type": "phpcodesniffer-standard",
+ "autoload": {
+ "psr-4": {
+ "VariableAnalysis\\": "VariableAnalysis/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sam Graham",
+ "email": "php-codesniffer-variableanalysis@illusori.co.uk"
+ },
+ {
+ "name": "Payton Swick",
+ "email": "payton@foolord.com"
+ }
+ ],
+ "description": "A PHPCS sniff to detect problems with variables.",
+ "support": {
+ "issues": "https://github.com/sirbrillig/phpcs-variable-analysis/issues",
+ "source": "https://github.com/sirbrillig/phpcs-variable-analysis",
+ "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki"
+ },
+ "time": "2021-07-06T23:45:17+00:00"
+ },
+ {
+ "name": "squizlabs/php_codesniffer",
+ "version": "3.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
+ "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
+ "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "bin": [
+ "bin/phpcs",
+ "bin/phpcbf"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Greg Sherwood",
+ "role": "lead"
+ }
+ ],
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "keywords": [
+ "phpcs",
+ "standards"
+ ],
+ "support": {
+ "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
+ "source": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
+ },
+ "time": "2021-12-12T21:44:58+00:00"
+ },
+ {
+ "name": "wp-coding-standards/wpcs",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
+ "reference": "7da1894633f168fe244afc6de00d141f27517b62"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7da1894633f168fe244afc6de00d141f27517b62",
+ "reference": "7da1894633f168fe244afc6de00d141f27517b62",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4",
+ "squizlabs/php_codesniffer": "^3.3.1"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || ^0.6",
+ "phpcompatibility/php-compatibility": "^9.0",
+ "phpcsstandards/phpcsdevtools": "^1.0",
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "suggest": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.6 || 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/WordPress-Coding-Standards/graphs/contributors"
+ }
+ ],
+ "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
+ "keywords": [
+ "phpcs",
+ "standards",
+ "wordpress"
+ ],
+ "support": {
+ "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues",
+ "source": "https://github.com/WordPress/WordPress-Coding-Standards",
+ "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki"
+ },
+ "time": "2020-05-13T23:57:56+00:00"
+ }
+ ],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
diff --git a/inc/orgSeries_updates.php b/inc/orgSeries_updates.php
index e8c936c1..3d70faf5 100644
--- a/inc/orgSeries_updates.php
+++ b/inc/orgSeries_updates.php
@@ -1,642 +1,642 @@
-metadataUrl = $metadataUrl;
- $this->checkPeriod = $checkPeriod;
- $this->slug = $slug;
- $tr_slug = str_replace('-','_',$this->slug);
- $this->pluginFile = $slug.'/'.$slug.'.php';
- $this->optionName = $optionName;
- $this->dismiss_upgrade = 'os_dismissed_upgrade_'.$tr_slug;
-
- //If no slug is specified, use the name of the main plugin file as the slug.
- //For example, 'my-cool-plugin/cool-plugin.php' becomes 'cool-plugin'.
- if ( empty($this->slug) ){
- $this->slug = basename($this->pluginFile, '.php');
- }
-
- if ( empty($this->optionName) ){
- $this->optionName = 'external_updates-' . $this->slug;
- }
- $this->set_api();
- $this->installHooks();
- }
-
- /**
- * sets the domain for localization
- **/
- function set_domain() {
- global $orgseries;
- if ( empty($orgseries) && class_exists('orgSeries') ) {
- $orgseries = new orgSeries();
- }
- $this->lang_domain = 'organize-series';
- }
- /**
- * gets the api from the options table if present
- **/
- function set_api($new_api = '') {
- $series_settings = get_option('org_series_options');
-
- if ( $install_key = get_option('orgseries_install_key') )
- $this->install_key = $install_key;
- $download_i = 'orgseries_install_key='.$install_key;
-
- if ( !empty($new_api) ) {
- $this->orgseries_api = $new_api;
- $download = 'orgseries_plugin_api='.$this->orgseries_api;
- $this->download_query = ( !empty($download_i) ) ? $download.'&'.$download_i : $download;
- return;
- }
-
- if (!empty($series_settings['orgseries_api'])) {
- $this->orgseries_api = $series_settings['orgseries_api'];
- $download = 'orgseries_plugin_api='.$this->orgseries_api;
- $this->download_query = ( !empty($download_i) ) ? $download.'&'.$download_i : $download;
- return;
- }
-
- $this->download_query = $download_i;
- }
-
- /**
- * Install the hooks required to run periodic update checks and inject update info
- * into WP data structures.
- * Also other hooks related to the automatic updates (such as checking agains API and what not (@from Darren)
- * @return void
- */
- function installHooks(){
- //Override requests for plugin information
- add_filter('plugins_api', array($this, 'injectInfo'), 10, 3);
-
- //Insert our update info into the update array maintained by WP
- add_filter('site_transient_update_plugins', array($this,'injectUpdate')); //WP 3.0+
- //add_filter('transient_update_plugins', array($this,'injectUpdate')); //WP 2.8+
-
- //Set up the periodic update checks
- $cronHook = 'check_plugin_updates-' . $this->slug;
- if ( $this->checkPeriod > 0 ){
-
- //Trigger the check via Cron
- add_filter('cron_schedules', array($this, '_addCustomSchedule'));
- if ( !wp_next_scheduled($cronHook) && !defined('WP_INSTALLING') ) {
- $scheduleName = 'every' . $this->checkPeriod . 'hours';
- wp_schedule_event(time(), $scheduleName, $cronHook);
- }
- add_action($cronHook, array($this, 'checkForUpdates'));
-
- //In case Cron is disabled or unreliable, we also manually trigger
- //the periodic checks while the user is browsing the Dashboard.
- add_action( 'admin_init', array($this, 'maybeCheckForUpdates') );
-
- } else {
- //Periodic checks are disabled.
- wp_clear_scheduled_hook($cronHook);
- }
- //dashboard message "dismiss upgrade" link
- add_action( "wp_ajax_".$this->dismiss_upgrade, array($this, 'dashboard_dismiss_upgrade'));
-
- //add in api option on Series Options page if it's not already there.
- add_action('admin_init', array($this, 'orgseries_api'));
- }
-
- function orgseries_api() {
- $this->set_domain();
- add_settings_field('orgseries_api_settings', 'Publishpress Series User API', array($this,'orgseries_api_output'), 'orgseries_options_page', 'series_automation_settings');
- register_setting('orgseries_options', 'org_series_options');
- add_filter('orgseries_options', array($this,'orgseries_api_validate'), 10, 2);
- }
-
- function orgseries_api_validate($newinput, $input) {
- if ( empty($newinput) || !is_array($newinput) ) $newinput = array();
- $newinput['orgseries_api'] = trim($input['orgseries_api']);
- $this->set_api($newinput['orgseries_api']);
- return $newinput;
- }
-
- function orgseries_api_output() {
- global $orgseries;
- $org_opt = $orgseries->settings;
- $org_name = 'org_series_options';
- ?>
- lang_domain); ?>
-
- checkPeriod && ($this->checkPeriod > 0) ){
- $scheduleName = 'every' . $this->checkPeriod . 'hours';
- $schedules[$scheduleName] = array(
- 'interval' => $this->checkPeriod * 3600,
- 'display' => sprintf('Every %d hours', $this->checkPeriod),
- );
- }
- return $schedules;
- }
-
- /**
- * Retrieve plugin info from the configured API endpoint.
- *
- * @uses wp_remote_get()
- *
- * @param array $queryArgs Additional query arguments to append to the request. Optional.
- * @return orgseries_PluginInfo
- */
- function requestInfo($queryArgs = array()){
- //Query args to append to the URL. Plugins can add their own by using a filter callback (see addQueryArgFilter()).
- $queryArgs['installed_version'] = $this->getInstalledVersion();
- $queryArgs['orgseries_request_plugin'] = $this->slug;
- if ( !empty($this->install_key) )
- $queryArgs['orgseries_install_key'] = $this->install_key;
- if ( !empty($this->orgseries_api) )
- $queryArgs['orgseries_plugin_api'] = $this->orgseries_api;
-
- $queryArgs = apply_filters('puc_request_info_query_args-'.$this->slug, $queryArgs);
-
- //Various options for the wp_remote_get() call. Plugins can filter these, too.
- $options = array(
- 'timeout' => 10, //seconds
- 'headers' => array(
- 'Accept' => 'application/json'
- ),
- );
- $options = apply_filters('puc_request_info_options-'.$this->slug, array());
-
- //The plugin info should be at 'http://your-api.com/url/here/$slug/info.json'
- $url = $this->metadataUrl;
- if ( !empty($queryArgs) ){
- $url = add_query_arg($queryArgs, $url);
- }
-
- $result = wp_remote_get(
- $url,
- $options
- );
-
- //Try to parse the response
- $pluginInfo = null;
- if ( !is_wp_error($result) && isset($result['response']['code']) && ($result['response']['code'] == 200) && !empty($result['body']) ){
- $pluginInfo = orgseries_PluginInfo::fromJson($result['body']);
- }
- $pluginInfo = apply_filters('puc_request_info_result-'.$this->slug, $pluginInfo, $result);
- return $pluginInfo;
- }
-
- /**
- * Retrieve the latest update (if any) from the configured API endpoint.
- *
- * @uses PluginUpdateChecker::requestInfo()
- *
- * @return PluginUpdate An instance of PluginUpdate, or NULL when no updates are available.
- */
- function requestUpdate(){
- //For the sake of simplicity, this function just calls requestInfo()
- //and transforms the result accordingly.
- $pluginInfo = $this->requestInfo(array('checking_for_updates' => '1'));
- if ( $pluginInfo == null ){
- return null;
- }
- //admin display for if the update check reveals that there is a new version but the API key isn't valid.
- if ( isset($pluginInfo->api_invalid) || isset($pluginInfo->no_api ) ) { //we have json_error returned let's display a message
- $this->json_error = $pluginInfo;
- add_action('admin_notices', array($this, 'display_json_error'));
- return null;
- }
-
- if ( isset($pluginInfo->new_install_key) ) {
- update_option('orgseries_install_key', $pluginInfo->new_install_key);
- }
-
- //need to correct the download url so it contains the custom user data (i.e. api and install key)
-
- if ( !empty($this->download_query) )
- $pluginInfo->download_url = $pluginInfo->download_url.'&'.$this->download_query;
-
- return PluginUpdate::fromPluginInfo($pluginInfo);
- }
-
- function display_json_error() {
- $pluginInfo = $this->json_error;
- $pluginName = ucwords(str_replace('-', ' ', $this->slug ));
- $update_dismissed = get_option($this->dismiss_upgrade);
-
- $is_dismissed = !empty($update_dismissed) && in_array($pluginInfo->version, $update_dismissed);
-
- if ($is_dismissed)
- return;
-
- //only display messages if there is a new version of the plugin.
- if ( version_compare($pluginInfo->version, $this->getInstalledVersion(), '>') ) {
- if ( $pluginInfo->no_api ){
- $msg = sprintf(__('
There is an automatic update for %s available but your api-key has not been set. Please go to the Publishpress Series Options page to set your api_key for this addon.
', $this->lang_domain), $pluginName); - } - - if ( $pluginInfo->api_invalid ) { - $msg = sprintf(__('There is an automatic update for %s available but your api-key is invalid. Either you have entered the wrong key on the Publishpress Series Options page OR you no longer have access to the updates for this plugin. Automatic upgrades for single website install\'s are gained via the Basic Support package. Automatic upgrades for multiple website install\'s are available via the All Addons package or the Lifetime Membership package.
', $this->lang_domain), $pluginName); - } - //Dismiss code below is obtained from the Gravity Forms Plugin by rocketgenius.com - ?> - - - dismiss_upgrade); - if (!is_array($os_ary)) - $os_ary = array(); - - $os_ary[] = $_POST['version']; - update_option($this->dismiss_upgrade, $os_ary); - } - - /** - * Get the currently installed version of the plugin. - * - * @return string Version number. - */ - function getInstalledVersion(){ - if ( function_exists('get_plugins') ) { - $allPlugins = get_plugins(); - if ( array_key_exists($this->pluginFile, $allPlugins) && array_key_exists('Version', $allPlugins[$this->pluginFile]) ){ - return $allPlugins[$this->pluginFile]['Version']; - } else { - return ''; //This should never happen. - }; - } - return ''; //this should never happen - } - - /** - * Check for plugin updates. - * The results are stored in the DB option specified in $optionName. - * - * @return void - */ - function checkForUpdates(){ - $state = get_option($this->optionName); - if ( empty($state) ){ - $state = new StdClass; - $state->lastCheck = 0; - $state->checkedVersion = ''; - $state->update = null; - } - - $state->lastCheck = time(); - $state->checkedVersion = $this->getInstalledVersion(); - update_option($this->optionName, $state); //Save before checking in case something goes wrong - - $state->update = $this->requestUpdate(); - update_option($this->optionName, $state); - } - - /** - * Check for updates only if the configured check interval has already elapsed. - * - * @return void - */ - function maybeCheckForUpdates(){ - if ( empty($this->checkPeriod) ){ - return; - } - - $state = get_option($this->optionName); - - $shouldCheck = - empty($state) || - !isset($state->lastCheck) || - ( (time() - $state->lastCheck) >= $this->checkPeriod*3600 ); - - if ( $shouldCheck ){ - $this->checkForUpdates(); - } - } - - /** - * Intercept plugins_api() calls that request information about our plugin and - * use the configured API endpoint to satisfy them. - * - * @see plugins_api() - * - * @param mixed $result - * @param string $action - * @param array|object $args - * @return mixed - */ - function injectInfo($result, $action = null, $args = null){ - $relevant = ($action == 'plugin_information') && isset($args->slug) && ($args->slug == $this->slug); - if ( !$relevant ){ - return $result; - } - - $pluginInfo = $this->requestInfo(array('checking_for_updates' => '1')); - if ($pluginInfo){ - return $pluginInfo->toWpFormat(); - } - - return $result; - } - - /** - * Insert the latest update (if any) into the update list maintained by WP. - * - * @param array $updates Update list. - * @return array Modified update list. - */ - function injectUpdate($updates){ - $state = get_option($this->optionName); - - //Is there an update to insert? - if ( !empty($state) && isset($state->update) && !empty($state->update) ){ - //Only insert updates that are actually newer than the currently installed version. - if ( version_compare($state->update->version, $this->getInstalledVersion(), '>') ){ - $updates->response[$this->pluginFile] = $state->update->toWpFormat(); - } - } - - return $updates; - } - - /** - * Register a callback for filtering query arguments. - * - * The callback function should take one argument - an associative array of query arguments. - * It should return a modified array of query arguments. - * - * @uses add_filter() This method is a convenience wrapper for add_filter(). - * - * @param callback $callback - * @return void - */ - function addQueryArgFilter($callback){ - add_filter('puc_request_info_query_args-'.$this->slug, $callback); - } - - /** - * Register a callback for filtering arguments passed to wp_remote_get(). - * - * The callback function should take one argument - an associative array of arguments - - * and return a modified array or arguments. See the WP documentation on wp_remote_get() - * for details on what arguments are available and how they work. - * - * @uses add_filter() This method is a convenience wrapper for add_filter(). - * - * @param callback $callback - * @return void - */ - function addHttpRequestArgFilter($callback){ - add_filter('puc_request_info_options-'.$this->slug, $callback); - } - - /** - * Register a callback for filtering the plugin info retrieved from the external API. - * - * The callback function should take two arguments. If the plugin info was retrieved - * successfully, the first argument passed will be an instance of orgseries_PluginInfo. Otherwise, - * it will be NULL. The second argument will be the corresponding return value of - * wp_remote_get (see WP docs for details). - * - * The callback function should return a new or modified instance of orgseries_PluginInfo or NULL. - * - * @uses add_filter() This method is a convenience wrapper for add_filter(). - * - * @param callback $callback - * @return void - */ - function addResultFilter($callback){ - add_filter('puc_request_info_result-'.$this->slug, $callback, 10, 2); - } -} - -endif; - -if ( !class_exists('orgseries_PluginInfo') ): - -/** - * A container class for holding and transforming various plugin metadata. - * - * @author Janis Elsts - * @copyright 2010 - * @version 1.0 - * @access public - */ -class orgseries_PluginInfo { - //Most fields map directly to the contents of the plugin's info.json file. - //See the relevant docs for a description of their meaning. - public $name; - public $slug; - public $version; - public $homepage; - public $sections; - public $download_url; - - public $author; - public $author_homepage; - - public $requires; - public $tested; - public $upgrade_notice; - - public $rating; - public $num_ratings; - public $downloaded; - public $last_updated; - - public $id = 0; //The native WP.org API returns numeric plugin IDs, but they're not used for anything. - - /** - * Create a new instance of orgseries_PluginInfo from JSON-encoded plugin info - * returned by an external update API. - * - * @param string $json Valid JSON string representing plugin info. - * @return orgseries_PluginInfo New instance of orgseries_PluginInfo, or NULL on error. - */ - public static function fromJson($json){ - $apiResponse = json_decode($json); - if ( empty($apiResponse) || !is_object($apiResponse) ){ - return null; - } - - //Very, very basic validation. - $valid = (isset($apiResponse->name) && !empty($apiResponse->name) && isset($apiResponse->version) && !empty($apiResponse->version)) || (isset($apiResponse->api_invalid) || isset($apiResponse->no_api)); - if ( !$valid ){ - return null; - } - - $info = new orgseries_PluginInfo(); - - foreach(get_object_vars($apiResponse) as $key => $value){ - $info->$key = $value; - } - - return $info; - } - - /** - * Transform plugin info into the format used by the native WordPress.org API - * - * @return object - */ - public function toWpFormat(){ - $info = new StdClass; - - //The custom update API is built so that many fields have the same name and format - //as those returned by the native WordPress.org API. These can be assigned directly. - $sameFormat = array( - 'name', 'slug', 'version', 'requires', 'tested', 'rating', 'upgrade_notice', - 'num_ratings', 'downloaded', 'homepage', 'last_updated', - ); - foreach($sameFormat as $field){ - if ( isset($this->$field) ) { - $info->$field = $this->$field; - } - } - - //Other fields need to be renamed and/or transformed. - $info->download_link = $this->download_url; - - if ( !empty($this->author_homepage) ){ - $info->author = sprintf('%s', $this->author_homepage, $this->author); - } else { - $info->author = $this->author; - } - - if ( is_object($this->sections) ){ - $info->sections = get_object_vars($this->sections); - } elseif ( is_array($this->sections) ) { - $info->sections = $this->sections; - } else { - $info->sections = array('description' => ''); - } - - return $info; - } -} - -endif; - -if ( !class_exists('PluginUpdate') ): - -/** - * A simple container class for holding information about an available update. - * - * @author Janis Elsts - * @copyright 2010 - * @version 1.0 - * @access public - */ -class PluginUpdate { - public $id = 0; - public $slug; - public $version; - public $homepage; - public $download_url; - public $upgrade_notice; - - /** - * Create a new instance of PluginUpdate from its JSON-encoded representation. - * - * @param string $json - * @return PluginUpdate - */ - public static function fromJson($json){ - //Since update-related information is simply a subset of the full plugin info, - //we can parse the update JSON as if it was a plugin info string, then copy over - //the parts that we care about. - $pluginInfo = orgseries_PluginInfo::fromJson($json); - if ( $pluginInfo != null ) { - return PluginUpdate::fromPluginInfo($pluginInfo); - } else { - return null; - } - } - - /** - * Create a new instance of PluginUpdate based on an instance of orgseries_PluginInfo. - * Basically, this just copies a subset of fields from one object to another. - * - * @param orgseries_PluginInfo $info - * @return PluginUpdate - */ - public static function fromPluginInfo($info){ - $update = new PluginUpdate(); - $copyFields = array('id', 'slug', 'version', 'homepage', 'download_url', 'upgrade_notice'); - foreach($copyFields as $field){ - $update->$field = $info->$field; - } - return $update; - } - - /** - * Transform the update into the format used by WordPress native plugin API. - * - * @return object - */ - public function toWpFormat(){ - $update = new StdClass; - - $update->id = $this->id; - $update->slug = $this->slug; - $update->new_version = $this->version; - $update->url = $this->homepage; - $update->package = $this->download_url; - if ( !empty($this->upgrade_notice) ){ - $update->upgrade_notice = $this->upgrade_notice; - } - - return $update; - } -} - -endif; - -?> +metadataUrl = $metadataUrl; + $this->checkPeriod = $checkPeriod; + $this->slug = $slug; + $tr_slug = str_replace('-','_',$this->slug); + $this->pluginFile = $slug.'/'.$slug.'.php'; + $this->optionName = $optionName; + $this->dismiss_upgrade = 'os_dismissed_upgrade_'.$tr_slug; + + //If no slug is specified, use the name of the main plugin file as the slug. + //For example, 'my-cool-plugin/cool-plugin.php' becomes 'cool-plugin'. + if ( empty($this->slug) ){ + $this->slug = basename($this->pluginFile, '.php'); + } + + if ( empty($this->optionName) ){ + $this->optionName = 'external_updates-' . $this->slug; + } + $this->set_api(); + $this->installHooks(); + } + + /** + * sets the domain for localization + **/ + function set_domain() { + global $orgseries; + if ( empty($orgseries) && class_exists('orgSeries') ) { + $orgseries = new orgSeries(); + } + $this->lang_domain = 'organize-series'; + } + /** + * gets the api from the options table if present + **/ + function set_api($new_api = '') { + $series_settings = get_option('org_series_options'); + + if ( $install_key = get_option('orgseries_install_key') ) + $this->install_key = $install_key; + $download_i = 'orgseries_install_key='.$install_key; + + if ( !empty($new_api) ) { + $this->orgseries_api = $new_api; + $download = 'orgseries_plugin_api='.$this->orgseries_api; + $this->download_query = ( !empty($download_i) ) ? $download.'&'.$download_i : $download; + return; + } + + if (!empty($series_settings['orgseries_api'])) { + $this->orgseries_api = $series_settings['orgseries_api']; + $download = 'orgseries_plugin_api='.$this->orgseries_api; + $this->download_query = ( !empty($download_i) ) ? $download.'&'.$download_i : $download; + return; + } + + $this->download_query = $download_i; + } + + /** + * Install the hooks required to run periodic update checks and inject update info + * into WP data structures. + * Also other hooks related to the automatic updates (such as checking agains API and what not (@from Darren) + * @return void + */ + function installHooks(){ + //Override requests for plugin information + add_filter('plugins_api', array($this, 'injectInfo'), 10, 3); + + //Insert our update info into the update array maintained by WP + add_filter('site_transient_update_plugins', array($this,'injectUpdate')); //WP 3.0+ + //add_filter('transient_update_plugins', array($this,'injectUpdate')); //WP 2.8+ + + //Set up the periodic update checks + $cronHook = 'check_plugin_updates-' . $this->slug; + if ( $this->checkPeriod > 0 ){ + + //Trigger the check via Cron + add_filter('cron_schedules', array($this, '_addCustomSchedule')); + if ( !wp_next_scheduled($cronHook) && !defined('WP_INSTALLING') ) { + $scheduleName = 'every' . $this->checkPeriod . 'hours'; + wp_schedule_event(time(), $scheduleName, $cronHook); + } + add_action($cronHook, array($this, 'checkForUpdates')); + + //In case Cron is disabled or unreliable, we also manually trigger + //the periodic checks while the user is browsing the Dashboard. + add_action( 'admin_init', array($this, 'maybeCheckForUpdates') ); + + } else { + //Periodic checks are disabled. + wp_clear_scheduled_hook($cronHook); + } + //dashboard message "dismiss upgrade" link + add_action( "wp_ajax_".$this->dismiss_upgrade, array($this, 'dashboard_dismiss_upgrade')); + + //add in api option on Series Options page if it's not already there. + add_action('admin_init', array($this, 'orgseries_api')); + } + + function orgseries_api() { + $this->set_domain(); + add_settings_field('orgseries_api_settings', 'Publishpress Series User API', array($this,'orgseries_api_output'), 'orgseries_options_page', 'series_automation_settings'); + register_setting('orgseries_options', 'org_series_options'); + add_filter('orgseries_options', array($this,'orgseries_api_validate'), 10, 2); + } + + function orgseries_api_validate($newinput, $input) { + if ( empty($newinput) || !is_array($newinput) ) $newinput = array(); + $newinput['orgseries_api'] = trim($input['orgseries_api']); + $this->set_api($newinput['orgseries_api']); + return $newinput; + } + + function orgseries_api_output() { + global $orgseries; + $org_opt = $orgseries->settings; + $org_name = 'org_series_options'; + ?> + lang_domain); ?> +There is an automatic update for %s available but your api-key has not been set. Please go to the Publishpress Series Options page to set your api_key for this addon.
', $this->lang_domain), $pluginName); + } + + if ( $pluginInfo->api_invalid ) { + $msg = sprintf(__('There is an automatic update for %s available but your api-key is invalid. Either you have entered the wrong key on the Publishpress Series Options page OR you no longer have access to the updates for this plugin. Automatic upgrades for single website install\'s are gained via the Basic Support package. Automatic upgrades for multiple website install\'s are available via the All Addons package or the Lifetime Membership package.
', $this->lang_domain), $pluginName); + } + //Dismiss code below is obtained from the Gravity Forms Plugin by rocketgenius.com + ?> + + + dismiss_upgrade); + if (!is_array($os_ary)) + $os_ary = array(); + + $os_ary[] = sanitize_text_field($_POST['version']); + update_option($this->dismiss_upgrade, $os_ary); + } + + /** + * Get the currently installed version of the plugin. + * + * @return string Version number. + */ + function getInstalledVersion(){ + if ( function_exists('get_plugins') ) { + $allPlugins = get_plugins(); + if ( array_key_exists($this->pluginFile, $allPlugins) && array_key_exists('Version', $allPlugins[$this->pluginFile]) ){ + return $allPlugins[$this->pluginFile]['Version']; + } else { + return ''; //This should never happen. + }; + } + return ''; //this should never happen + } + + /** + * Check for plugin updates. + * The results are stored in the DB option specified in $optionName. + * + * @return void + */ + function checkForUpdates(){ + $state = get_option($this->optionName); + if ( empty($state) ){ + $state = new StdClass; + $state->lastCheck = 0; + $state->checkedVersion = ''; + $state->update = null; + } + + $state->lastCheck = time(); + $state->checkedVersion = $this->getInstalledVersion(); + update_option($this->optionName, $state); //Save before checking in case something goes wrong + + $state->update = $this->requestUpdate(); + update_option($this->optionName, $state); + } + + /** + * Check for updates only if the configured check interval has already elapsed. + * + * @return void + */ + function maybeCheckForUpdates(){ + if ( empty($this->checkPeriod) ){ + return; + } + + $state = get_option($this->optionName); + + $shouldCheck = + empty($state) || + !isset($state->lastCheck) || + ( (time() - $state->lastCheck) >= $this->checkPeriod*3600 ); + + if ( $shouldCheck ){ + $this->checkForUpdates(); + } + } + + /** + * Intercept plugins_api() calls that request information about our plugin and + * use the configured API endpoint to satisfy them. + * + * @see plugins_api() + * + * @param mixed $result + * @param string $action + * @param array|object $args + * @return mixed + */ + function injectInfo($result, $action = null, $args = null){ + $relevant = ($action == 'plugin_information') && isset($args->slug) && ($args->slug == $this->slug); + if ( !$relevant ){ + return $result; + } + + $pluginInfo = $this->requestInfo(array('checking_for_updates' => '1')); + if ($pluginInfo){ + return $pluginInfo->toWpFormat(); + } + + return $result; + } + + /** + * Insert the latest update (if any) into the update list maintained by WP. + * + * @param array $updates Update list. + * @return array Modified update list. + */ + function injectUpdate($updates){ + $state = get_option($this->optionName); + + //Is there an update to insert? + if ( !empty($state) && isset($state->update) && !empty($state->update) ){ + //Only insert updates that are actually newer than the currently installed version. + if ( version_compare($state->update->version, $this->getInstalledVersion(), '>') ){ + $updates->response[$this->pluginFile] = $state->update->toWpFormat(); + } + } + + return $updates; + } + + /** + * Register a callback for filtering query arguments. + * + * The callback function should take one argument - an associative array of query arguments. + * It should return a modified array of query arguments. + * + * @uses add_filter() This method is a convenience wrapper for add_filter(). + * + * @param callback $callback + * @return void + */ + function addQueryArgFilter($callback){ + add_filter('puc_request_info_query_args-'.$this->slug, $callback); + } + + /** + * Register a callback for filtering arguments passed to wp_remote_get(). + * + * The callback function should take one argument - an associative array of arguments - + * and return a modified array or arguments. See the WP documentation on wp_remote_get() + * for details on what arguments are available and how they work. + * + * @uses add_filter() This method is a convenience wrapper for add_filter(). + * + * @param callback $callback + * @return void + */ + function addHttpRequestArgFilter($callback){ + add_filter('puc_request_info_options-'.$this->slug, $callback); + } + + /** + * Register a callback for filtering the plugin info retrieved from the external API. + * + * The callback function should take two arguments. If the plugin info was retrieved + * successfully, the first argument passed will be an instance of orgseries_PluginInfo. Otherwise, + * it will be NULL. The second argument will be the corresponding return value of + * wp_remote_get (see WP docs for details). + * + * The callback function should return a new or modified instance of orgseries_PluginInfo or NULL. + * + * @uses add_filter() This method is a convenience wrapper for add_filter(). + * + * @param callback $callback + * @return void + */ + function addResultFilter($callback){ + add_filter('puc_request_info_result-'.$this->slug, $callback, 10, 2); + } +} + +endif; + +if ( !class_exists('orgseries_PluginInfo') ): + +/** + * A container class for holding and transforming various plugin metadata. + * + * @author Janis Elsts + * @copyright 2010 + * @version 1.0 + * @access public + */ +class orgseries_PluginInfo { + //Most fields map directly to the contents of the plugin's info.json file. + //See the relevant docs for a description of their meaning. + public $name; + public $slug; + public $version; + public $homepage; + public $sections; + public $download_url; + + public $author; + public $author_homepage; + + public $requires; + public $tested; + public $upgrade_notice; + + public $rating; + public $num_ratings; + public $downloaded; + public $last_updated; + + public $id = 0; //The native WP.org API returns numeric plugin IDs, but they're not used for anything. + + /** + * Create a new instance of orgseries_PluginInfo from JSON-encoded plugin info + * returned by an external update API. + * + * @param string $json Valid JSON string representing plugin info. + * @return orgseries_PluginInfo New instance of orgseries_PluginInfo, or NULL on error. + */ + public static function fromJson($json){ + $apiResponse = json_decode($json); + if ( empty($apiResponse) || !is_object($apiResponse) ){ + return null; + } + + //Very, very basic validation. + $valid = (isset($apiResponse->name) && !empty($apiResponse->name) && isset($apiResponse->version) && !empty($apiResponse->version)) || (isset($apiResponse->api_invalid) || isset($apiResponse->no_api)); + if ( !$valid ){ + return null; + } + + $info = new orgseries_PluginInfo(); + + foreach(get_object_vars($apiResponse) as $key => $value){ + $info->$key = $value; + } + + return $info; + } + + /** + * Transform plugin info into the format used by the native WordPress.org API + * + * @return object + */ + public function toWpFormat(){ + $info = new StdClass; + + //The custom update API is built so that many fields have the same name and format + //as those returned by the native WordPress.org API. These can be assigned directly. + $sameFormat = array( + 'name', 'slug', 'version', 'requires', 'tested', 'rating', 'upgrade_notice', + 'num_ratings', 'downloaded', 'homepage', 'last_updated', + ); + foreach($sameFormat as $field){ + if ( isset($this->$field) ) { + $info->$field = $this->$field; + } + } + + //Other fields need to be renamed and/or transformed. + $info->download_link = $this->download_url; + + if ( !empty($this->author_homepage) ){ + $info->author = sprintf('%s', $this->author_homepage, $this->author); + } else { + $info->author = $this->author; + } + + if ( is_object($this->sections) ){ + $info->sections = get_object_vars($this->sections); + } elseif ( is_array($this->sections) ) { + $info->sections = $this->sections; + } else { + $info->sections = array('description' => ''); + } + + return $info; + } +} + +endif; + +if ( !class_exists('PluginUpdate') ): + +/** + * A simple container class for holding information about an available update. + * + * @author Janis Elsts + * @copyright 2010 + * @version 1.0 + * @access public + */ +class PluginUpdate { + public $id = 0; + public $slug; + public $version; + public $homepage; + public $download_url; + public $upgrade_notice; + + /** + * Create a new instance of PluginUpdate from its JSON-encoded representation. + * + * @param string $json + * @return PluginUpdate + */ + public static function fromJson($json){ + //Since update-related information is simply a subset of the full plugin info, + //we can parse the update JSON as if it was a plugin info string, then copy over + //the parts that we care about. + $pluginInfo = orgseries_PluginInfo::fromJson($json); + if ( $pluginInfo != null ) { + return PluginUpdate::fromPluginInfo($pluginInfo); + } else { + return null; + } + } + + /** + * Create a new instance of PluginUpdate based on an instance of orgseries_PluginInfo. + * Basically, this just copies a subset of fields from one object to another. + * + * @param orgseries_PluginInfo $info + * @return PluginUpdate + */ + public static function fromPluginInfo($info){ + $update = new PluginUpdate(); + $copyFields = array('id', 'slug', 'version', 'homepage', 'download_url', 'upgrade_notice'); + foreach($copyFields as $field){ + $update->$field = $info->$field; + } + return $update; + } + + /** + * Transform the update into the format used by WordPress native plugin API. + * + * @return object + */ + public function toWpFormat(){ + $update = new StdClass; + + $update->id = $this->id; + $update->slug = $this->slug; + $update->new_version = $this->version; + $update->url = $this->homepage; + $update->package = $this->download_url; + if ( !empty($this->upgrade_notice) ){ + $update->upgrade_notice = $this->upgrade_notice; + } + + return $update; + } +} + +endif; + +?> diff --git a/js/orgseries_options.js b/js/orgseries_options.js index a7aaffae..cbd42042 100644 --- a/js/orgseries_options.js +++ b/js/orgseries_options.js @@ -1,37 +1,49 @@ -jQuery(document).ready(function($) { - //Thickbox - $(document).on('click','input[name="option_reset"]', function(){ - tb_show('Are you sure you want to Reset?','TB_inline?height=155&width=300&inlineId=TBcontent'); - return false; - }); - - $('input#TBcancel').click(function(){ - tb_remove(); - }); - - $('input#TBsubmit').click(function(){ - $('input.reset_option', '#series_options' ).val('1'); - document.series_options.submit(); - }); - - $('#custom_css').click(function(e) { - var is_checked = $('input#custom_css').is(':checked'); - - if (is_checked) { - $("input[class='css_style']").attr('disabled', false); - } - - if (!is_checked) { - $("input[class='css_style']").attr('disabled', true); - } - }); - - // Toggle a columns setting based on layout value - $('#series_overview_page_layout').change(function(){ - if($(this).val() == 'grid'){ - $('.ppseries-settings-table').find('tr.pps-row-columns').show(); - } else { - $('.ppseries-settings-table').find('tr.pps-row-columns').hide(); - } - }); -}); +jQuery(document).ready(function($) { + //Thickbox + $(document).on('click','input[name="option_reset"]', function(){ + tb_show('Are you sure you want to Reset?','TB_inline?height=155&width=300&inlineId=TBcontent'); + return false; + }); + + $('input#TBcancel').click(function(){ + tb_remove(); + }); + + $('input#TBsubmit').click(function(){ + $('input.reset_option', '#series_options' ).val('1'); + document.series_options.submit(); + }); + + $('#custom_css').click(function(e) { + var is_checked = $('input#custom_css').is(':checked'); + + if (is_checked) { + $("input[class='css_style']").attr('disabled', false); + } + + if (!is_checked) { + $("input[class='css_style']").attr('disabled', true); + } + }); + + // Overview page tab settings + $('#series_overview_page_layout').on('change', function(){ + // Show / Hide columns field + if($(this).val() == 'grid'){ + $('.ppseries-settings-table').find('tr.pps-row-columns').show(); + } else { + $('.ppseries-settings-table').find('tr.pps-row-columns').hide(); + } + // Show / Hide layout description + if($(this).val() != 'default'){ + $('#series_overview_page_layout_desc').show(); + } else { + $('#series_overview_page_layout_desc').hide(); + } + }); + + // Show / Hide layout description on load + if($('#series_overview_page_layout').val() == 'default'){ + $('#series_overview_page_layout_desc').hide(); + } +}); \ No newline at end of file diff --git a/languages/organize-series-en_US.mo b/languages/organize-series-en_US.mo index aa2564ac..8f17980e 100644 Binary files a/languages/organize-series-en_US.mo and b/languages/organize-series-en_US.mo differ diff --git a/languages/organize-series-en_US.po b/languages/organize-series-en_US.po index d72c1e76..9ed306c8 100644 --- a/languages/organize-series-en_US.po +++ b/languages/organize-series-en_US.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Publishpress Series Core Plugin\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-08-31 17:39+0000\n" -"PO-Revision-Date: 2021-12-09 15:24+0000\n" +"PO-Revision-Date: 2022-01-05 15:07+0000\n" "Last-Translator: \n" "Language-Team: English (United States)\n" "MIME-Version: 1.0\n" @@ -39,7 +39,7 @@ msgstr "" msgid "%1$s is not a valid entity (expected: %2$s)." msgstr "" -#: orgSeries-options.php:121 orgSeries-admin.php:46 +#: orgSeries-options.php:129 orgSeries-admin.php:46 #, php-format msgid "%1$s series migrated to new taxonomy" msgstr "" @@ -100,7 +100,7 @@ msgstr "" msgid "All the Series I've Written" msgstr "" -#: orgSeries-options.php:258 +#: orgSeries-options.php:266 msgid "Allowed Html" msgstr "" @@ -112,7 +112,7 @@ msgstr "" msgid "An error occurred, please try again." msgstr "" -#: orgSeries-options.php:481 +#: orgSeries-options.php:490 msgid "As in Template" msgstr "" @@ -120,7 +120,7 @@ msgstr "" msgid "ASC: " msgstr "" -#: orgSeries-widgets.php:304 orgSeries-options.php:462 +#: orgSeries-widgets.php:304 orgSeries-options.php:471 msgid "Ascending" msgstr "" @@ -128,21 +128,21 @@ msgstr "" msgid "Auto/None" msgstr "" -#: orgSeries-options.php:483 +#: orgSeries-options.php:492 msgid "Bottom" msgstr "" -#: orgSeries-options.php:738 +#: orgSeries-options.php:747 msgid "Choose the design for the taxonomy page where a Series is displayed." msgstr "" -#: orgSeries-options.php:333 +#: orgSeries-options.php:342 msgid "" "Clicking Yes will reset the options to the defaults and you will lose all " "customizations. Or you can click cancel and return." msgstr "" -#: orgSeries-options.php:768 +#: orgSeries-options.php:777 msgid "Columns:" msgstr "" @@ -171,11 +171,11 @@ msgstr "" msgid "Deactivate License" msgstr "" -#: orgSeries-options.php:733 +#: orgSeries-options.php:742 msgid "Default" msgstr "" -#: orgSeries-options.php:791 +#: orgSeries-options.php:800 msgid "" "Delete all PublishPress Series data from the database when deleting this " "plugin." @@ -191,15 +191,15 @@ msgstr "" msgid "DESC: " msgstr "" -#: orgSeries-widgets.php:303 orgSeries-options.php:463 +#: orgSeries-widgets.php:303 orgSeries-options.php:472 msgid "Descending" msgstr "" -#: orgSeries-options.php:429 +#: orgSeries-options.php:438 msgid "Display on Series Table of Contents screens" msgstr "" -#: orgSeries-options.php:394 +#: orgSeries-options.php:403 msgid "Display on single posts in a series" msgstr "" @@ -207,15 +207,15 @@ msgstr "" msgid "Display Order: " msgstr "" -#: orgSeries-options.php:411 +#: orgSeries-options.php:420 msgid "Display Series Meta information?" msgstr "" -#: orgSeries-options.php:407 +#: orgSeries-options.php:416 msgid "Display Series Navigation links ?" msgstr "" -#: orgSeries-options.php:399 +#: orgSeries-options.php:408 msgid "Display Series Post List box?" msgstr "" @@ -239,11 +239,11 @@ msgstr "" msgid "Exclude series" msgstr "" -#: orgSeries-options.php:602 +#: orgSeries-options.php:611 msgid "First Post" msgstr "" -#: orgSeries-options.php:734 +#: orgSeries-options.php:743 msgid "Grid" msgstr "" @@ -285,35 +285,35 @@ msgstr "" msgid "Include series" msgstr "" -#: orgSeries-options.php:282 +#: orgSeries-options.php:290 msgid "" "Is the location token for where the contents of the post list post templates " "will appear and use provided widget post short title." msgstr "" -#: orgSeries-options.php:280 +#: orgSeries-options.php:288 msgid "" "Is the location token for where the contents of the post list post templates " "will appear." msgstr "" -#: orgSeries-widgets.php:13 orgSeries-options.php:610 +#: orgSeries-widgets.php:13 orgSeries-options.php:619 msgid "Latest Series" msgstr "" -#: orgSeries-options.php:621 +#: orgSeries-options.php:630 msgid "Latest Series (inner tags):" msgstr "" -#: orgSeries-options.php:626 +#: orgSeries-options.php:635 msgid "Latest Series (tags after):" msgstr "" -#: orgSeries-options.php:616 +#: orgSeries-options.php:625 msgid "Latest Series (tags before):" msgstr "" -#: orgSeries-options.php:743 +#: orgSeries-options.php:752 msgid "Layout:" msgstr "" @@ -336,7 +336,7 @@ msgstr "" msgid "License Key successfully deactivated." msgstr "" -#: orgSeries-options.php:735 +#: orgSeries-options.php:744 msgid "List" msgstr "" @@ -348,15 +348,15 @@ msgstr "" msgid "Manage Series" msgstr "" -#: orgSeries-options.php:403 +#: orgSeries-options.php:412 msgid "Maximum number of items in Series Post List" msgstr "" -#: orgSeries-options.php:704 +#: orgSeries-options.php:713 msgid "Migrate" msgstr "" -#: orgSeries-options.php:708 +#: orgSeries-options.php:717 msgid "Migrate series to new taxonomy" msgstr "" @@ -385,11 +385,11 @@ msgstr "" msgid "New Series Name" msgstr "" -#: orgSeries-options.php:592 +#: orgSeries-options.php:601 msgid "Next Post" msgstr "" -#: orgSeries-options.php:334 +#: orgSeries-options.php:343 msgid "No" msgstr "" @@ -441,11 +441,11 @@ msgstr "" msgid "Order by\t" msgstr "" -#: orgSeries-options.php:456 +#: orgSeries-options.php:465 msgid "Order by date" msgstr "" -#: orgSeries-options.php:453 +#: orgSeries-options.php:462 msgid "Order series by:" msgstr "" @@ -453,7 +453,7 @@ msgstr "" msgid "Other posts in series:" msgstr "" -#: orgSeries-options.php:266 +#: orgSeries-options.php:274 msgid "Overview" msgstr "" @@ -468,7 +468,11 @@ msgstr "" msgid "Part:" msgstr "" -#: orgSeries-options.php:759 +#: orgSeries-options.php:91 +msgid "Permission denied" +msgstr "" + +#: orgSeries-options.php:768 #, php-format msgid "" "Please note: choosing a layout different to \"Default\" will override the " @@ -476,7 +480,7 @@ msgid "" "target=\"_blank\">customize the template." msgstr "" -#: orgSeries-options.php:710 +#: orgSeries-options.php:719 msgid "" "Please use with caution. Running this process will delete all the terms from " "the current taxonomy and migrate them to a new taxonomy." @@ -494,7 +498,7 @@ msgstr "" msgid "Posts from the series: " msgstr "" -#: orgSeries-options.php:597 +#: orgSeries-options.php:606 msgid "Previous Post" msgstr "" @@ -528,15 +532,15 @@ msgstr "" msgid "PublishPress Series Options" msgstr "" -#: orgSeries-options.php:230 +#: orgSeries-options.php:238 msgid "PublishPress Series Plugin Options" msgstr "" -#: orgSeries-options.php:90 +#: orgSeries-options.php:98 msgid "PublishPress Series Plugin Options have been RESET" msgstr "" -#: orgSeries-options.php:125 +#: orgSeries-options.php:133 msgid "PublishPress Series Plugin Options have been updated" msgstr "" @@ -548,22 +552,22 @@ msgstr "" msgid "Read more" msgstr "" -#: orgSeries-options.php:802 +#: orgSeries-options.php:811 msgid "Reset options to default" msgstr "" -#: orgSeries-options.php:799 +#: orgSeries-options.php:808 msgid "Reset settings" msgstr "" -#: orgSeries-options.php:272 +#: orgSeries-options.php:280 #, php-format msgid "" "Same as %series_icon% except that the series icon will be linked to the " "series page" msgstr "" -#: orgSeries-options.php:278 +#: orgSeries-options.php:286 #, php-format msgid "" "Same as %series_title% except that it will also be linked to the series page" @@ -591,7 +595,7 @@ msgstr "" msgid "Series" msgstr "" -#: orgSeries-options.php:717 +#: orgSeries-options.php:726 msgid "Series Custom Base:" msgstr "" @@ -603,19 +607,19 @@ msgstr "" msgid "series id" msgstr "" -#: orgSeries-options.php:558 +#: orgSeries-options.php:567 msgid "Series Meta (with excerpts):" msgstr "" -#: orgSeries-options.php:532 +#: orgSeries-options.php:541 msgid "Series Meta Box" msgstr "" -#: orgSeries-options.php:538 +#: orgSeries-options.php:547 msgid "Series Meta:" msgstr "" -#: orgSeries-options.php:544 +#: orgSeries-options.php:553 msgid "Series Metabox Location" msgstr "" @@ -623,15 +627,15 @@ msgstr "" msgid "Series Navigation" msgstr "" -#: orgSeries-options.php:567 +#: orgSeries-options.php:576 msgid "Series Navigation Box" msgstr "" -#: orgSeries-options.php:460 +#: orgSeries-options.php:469 msgid "Series order method" msgstr "" -#: orgSeries-options.php:455 +#: orgSeries-options.php:464 msgid "Series part" msgstr "" @@ -639,39 +643,39 @@ msgstr "" msgid "Series Part:" msgstr "" -#: orgSeries-options.php:445 +#: orgSeries-options.php:454 msgid "Series Per Page:" msgstr "" -#: orgSeries-options.php:499 +#: orgSeries-options.php:508 msgid "Series Post List" msgstr "" -#: orgSeries-options.php:494 +#: orgSeries-options.php:503 msgid "Series Post List Box" msgstr "" -#: orgSeries-options.php:504 +#: orgSeries-options.php:513 msgid "Series Post List box Location" msgstr "" -#: orgSeries-options.php:524 +#: orgSeries-options.php:533 msgid "Series Post List Current Post Title" msgstr "" -#: orgSeries-options.php:518 +#: orgSeries-options.php:527 msgid "Series Post List Post Title" msgstr "" -#: orgSeries-options.php:578 +#: orgSeries-options.php:587 msgid "Series Post Navigation Location" msgstr "" -#: orgSeries-options.php:573 +#: orgSeries-options.php:582 msgid "Series Post Navigation:" msgstr "" -#: orgSeries-options.php:788 +#: orgSeries-options.php:797 msgid "Series Settings" msgstr "" @@ -679,7 +683,7 @@ msgstr "" msgid "Series Slug" msgstr "" -#: orgSeries-widgets.php:103 orgSeries-options.php:631 orgSeries-setup.php:416 +#: orgSeries-widgets.php:103 orgSeries-options.php:640 orgSeries-setup.php:416 msgid "Series Table of Contents" msgstr "" @@ -687,15 +691,15 @@ msgstr "" msgid "Series Table of Contents << " msgstr "" -#: orgSeries-options.php:449 +#: orgSeries-options.php:458 msgid "Series Table of Contents Title:" msgstr "" -#: orgSeries-options.php:431 +#: orgSeries-options.php:440 msgid "Series Table of Contents URL:" msgstr "" -#: orgSeries-options.php:694 +#: orgSeries-options.php:703 msgid "Series Taxonomy:" msgstr "" @@ -743,7 +747,7 @@ msgstr "" msgid "Sorry, no results found." msgstr "" -#: orgSeries-options.php:419 +#: orgSeries-options.php:428 msgid "Style options" msgstr "" @@ -775,7 +779,7 @@ msgstr "" msgid "The %1$s method can only be used to register a child of %2%s." msgstr "" -#: orgSeries-options.php:268 +#: orgSeries-options.php:276 msgid "" "The following is a legend of the tokens that are available for use in the " "custom template fields. These will be replaced with the appropriate values " @@ -854,38 +858,38 @@ msgid "" "can only be used to push values to this data element when it is an array." msgstr "" -#: orgSeries-options.php:569 +#: orgSeries-options.php:578 msgid "This display is shown at the bottom of all posts in a series." msgstr "" -#: orgSeries-options.php:496 orgSeries-options.php:534 +#: orgSeries-options.php:505 orgSeries-options.php:543 msgid "This display is shown at the top of all posts in a series." msgstr "" -#: orgSeries-options.php:612 +#: orgSeries-options.php:621 msgid "This display is used by the \"Series Table of Contents\" widget." msgstr "" -#: orgSeries-options.php:633 +#: orgSeries-options.php:642 msgid "" "This display is used by the \"Series Table of Contents\". To find the URL " "for this display, go the \"Display\" tab and then \"Series Table of Contents " "URL\"." msgstr "" -#: orgSeries-options.php:698 +#: orgSeries-options.php:707 msgid "" "This feature allows you to create a new taxonomy for this plugin to use if " "you don't want to use the default \"Series\" taxonomy." msgstr "" -#: orgSeries-options.php:360 +#: orgSeries-options.php:369 msgid "" "This section is for the icons that show with your series. Note that you must " "use a token for the icon in the \"Templates\" settings." msgstr "" -#: orgSeries-options.php:719 +#: orgSeries-options.php:728 msgid "This text will be part of the URL for all Series Overview pages." msgstr "" @@ -893,18 +897,18 @@ msgstr "" msgid "This text will display above other posts in this series." msgstr "" -#: orgSeries-options.php:274 +#: orgSeries-options.php:282 msgid "" "This token is for use with the orgSeries widget only - it references where " "you want the list of series titles to be inserted and requires that the " "template for each series title be also set." msgstr "" -#: orgSeries-options.php:270 +#: orgSeries-options.php:278 msgid "This will be replaced with the series icon for a series." msgstr "" -#: orgSeries-options.php:276 +#: orgSeries-options.php:284 msgid "This will be replaced with the title of a series" msgstr "" @@ -918,7 +922,7 @@ msgid "" "php version on your server." msgstr "" -#: orgSeries-options.php:482 +#: orgSeries-options.php:491 msgid "Top" msgstr "" @@ -927,11 +931,11 @@ msgstr "" msgid "Unable to retrieve an instance of %1$s. Not found." msgstr "" -#: orgSeries-options.php:218 +#: orgSeries-options.php:226 msgid "Uninstall / Reset" msgstr "" -#: orgSeries-options.php:329 +#: orgSeries-options.php:338 msgid "Update Options" msgstr "" @@ -943,31 +947,31 @@ msgstr "" msgid "Upload an image for the series." msgstr "" -#: orgSeries-options.php:217 +#: orgSeries-options.php:225 msgid "URLs and Taxonomy" msgstr "" -#: orgSeries-options.php:422 +#: orgSeries-options.php:431 msgid "Use box style" msgstr "" -#: orgSeries-options.php:423 +#: orgSeries-options.php:432 msgid "Use dark style" msgstr "" -#: orgSeries-options.php:421 +#: orgSeries-options.php:430 msgid "Use default style" msgstr "" -#: orgSeries-options.php:424 +#: orgSeries-options.php:433 msgid "Use light style" msgstr "" -#: orgSeries-options.php:415 +#: orgSeries-options.php:424 msgid "Use PublishPress Series CSS styles?" msgstr "" -#: orgSeries-options.php:294 +#: orgSeries-options.php:302 msgid "" "Use this tag either before or after the rest of the template code. It will " "indicate where you want the content of a post to display." @@ -989,33 +993,33 @@ msgstr "" msgid "When Series was Created" msgstr "" -#: orgSeries-options.php:671 +#: orgSeries-options.php:680 msgid "Width for icon if displayed via the latest series template (in pixels)." msgstr "" -#: orgSeries-options.php:665 +#: orgSeries-options.php:674 msgid "Width for icon on a post page (in pixels)." msgstr "" -#: orgSeries-options.php:659 +#: orgSeries-options.php:668 msgid "Width for icon on series table of contents page (in pixels)" msgstr "" -#: orgSeries-options.php:292 +#: orgSeries-options.php:300 msgid "" "Will be replaced by the navigation link for the first post in a series. The " "text will be whatever is included in the 'Custom First Post Navigation Text' " "field. If that field is empty then the text will be the title of the post" msgstr "" -#: orgSeries-options.php:290 +#: orgSeries-options.php:298 msgid "" "Will be replaced by the navigation link for the next post in a series. The " "text will be whatever is included in the 'Custom Next Post Navigation Text' " "field. If that field is empty then the text will be the title of the post" msgstr "" -#: orgSeries-options.php:288 +#: orgSeries-options.php:296 msgid "" "Will be replaced by the navigation link for the previous post in a series. " "The text will be whatever is included in the 'Custom Previous Post " @@ -1023,29 +1027,29 @@ msgid "" "title of the post" msgstr "" -#: orgSeries-options.php:284 +#: orgSeries-options.php:292 msgid "Will be replaced with the post title of a post in the series" msgstr "" -#: orgSeries-options.php:286 +#: orgSeries-options.php:294 msgid "" "Will be replaced with the post title of a post in the series linked to the " "page view of that post." msgstr "" -#: orgSeries-options.php:300 +#: orgSeries-options.php:308 msgid "Will display the description for the series" msgstr "" -#: orgSeries-options.php:298 +#: orgSeries-options.php:306 msgid "Will display the total number of posts in a series" msgstr "" -#: orgSeries-options.php:296 +#: orgSeries-options.php:304 msgid "Will display what part of a series the post is" msgstr "" -#: orgSeries-options.php:335 +#: orgSeries-options.php:344 msgid "Yes" msgstr "" diff --git a/languages/organize-series-it_IT.mo b/languages/organize-series-it_IT.mo index 2ef551d0..600a257a 100644 Binary files a/languages/organize-series-it_IT.mo and b/languages/organize-series-it_IT.mo differ diff --git a/languages/organize-series-it_IT.po b/languages/organize-series-it_IT.po index db97a2f4..0420d22f 100644 --- a/languages/organize-series-it_IT.po +++ b/languages/organize-series-it_IT.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the Plugins - PublishPress Series – Organize WordPress Posts into a Series - Stable (latest release) package. msgid "" msgstr "" -"PO-Revision-Date: 2021-12-09 15:24+0000\n" +"PO-Revision-Date: 2022-01-05 15:07+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -27,7 +27,7 @@ msgstr " Elenco: " msgid "%1$s is not a valid entity (expected: %2$s)." msgstr "%1$s non è un'entità valida (previsto: %2$s)." -#: orgSeries-options.php:121 orgSeries-admin.php:46 +#: orgSeries-options.php:129 orgSeries-admin.php:46 #, php-format msgid "%1$s series migrated to new taxonomy" msgstr "" @@ -88,7 +88,7 @@ msgstr "Tutte le serie" msgid "All the Series I've Written" msgstr "Tutte le serie che ho scritto" -#: orgSeries-options.php:258 +#: orgSeries-options.php:266 msgid "Allowed Html" msgstr "" @@ -100,7 +100,7 @@ msgstr "" msgid "An error occurred, please try again." msgstr "Si è verificato un errore, riprova." -#: orgSeries-options.php:481 +#: orgSeries-options.php:490 msgid "As in Template" msgstr "" @@ -108,7 +108,7 @@ msgstr "" msgid "ASC: " msgstr "Cresc: " -#: orgSeries-widgets.php:304 orgSeries-options.php:462 +#: orgSeries-widgets.php:304 orgSeries-options.php:471 msgid "Ascending" msgstr "Crescente" @@ -116,15 +116,15 @@ msgstr "Crescente" msgid "Auto/None" msgstr "" -#: orgSeries-options.php:483 +#: orgSeries-options.php:492 msgid "Bottom" msgstr "" -#: orgSeries-options.php:738 +#: orgSeries-options.php:747 msgid "Choose the design for the taxonomy page where a Series is displayed." msgstr "" -#: orgSeries-options.php:333 +#: orgSeries-options.php:342 msgid "" "Clicking Yes will reset the options to the defaults and you will lose all " "customizations. Or you can click cancel and return." @@ -133,7 +133,7 @@ msgstr "" "perderai tutte le personalizzazioni. Oppure puoi fare clic su Annulla e " "ritorna." -#: orgSeries-options.php:768 +#: orgSeries-options.php:777 msgid "Columns:" msgstr "" @@ -162,11 +162,11 @@ msgstr "Icona della serie corrente:" msgid "Deactivate License" msgstr "Disattiva la licenza" -#: orgSeries-options.php:733 +#: orgSeries-options.php:742 msgid "Default" msgstr "" -#: orgSeries-options.php:791 +#: orgSeries-options.php:800 msgid "" "Delete all PublishPress Series data from the database when deleting this " "plugin." @@ -186,15 +186,15 @@ msgstr "" msgid "DESC: " msgstr "Decr: " -#: orgSeries-widgets.php:303 orgSeries-options.php:463 +#: orgSeries-widgets.php:303 orgSeries-options.php:472 msgid "Descending" msgstr "Decrescente" -#: orgSeries-options.php:429 +#: orgSeries-options.php:438 msgid "Display on Series Table of Contents screens" msgstr "" -#: orgSeries-options.php:394 +#: orgSeries-options.php:403 msgid "Display on single posts in a series" msgstr "" @@ -202,17 +202,17 @@ msgstr "" msgid "Display Order: " msgstr "Ordine di visualizzazione: " -#: orgSeries-options.php:411 +#: orgSeries-options.php:420 msgid "Display Series Meta information?" msgstr "" -#: orgSeries-options.php:407 +#: orgSeries-options.php:416 #, fuzzy #| msgid "Display series navigation links?" msgid "Display Series Navigation links ?" msgstr "Visualizzare i link di navigazione della serie?" -#: orgSeries-options.php:399 +#: orgSeries-options.php:408 #, fuzzy #| msgid "Display series post list box?" msgid "Display Series Post List box?" @@ -238,11 +238,11 @@ msgstr "Inserisci la tua chiave di licenza: " msgid "Exclude series" msgstr "" -#: orgSeries-options.php:602 +#: orgSeries-options.php:611 msgid "First Post" msgstr "" -#: orgSeries-options.php:734 +#: orgSeries-options.php:743 msgid "Grid" msgstr "" @@ -286,13 +286,13 @@ msgstr "Se sei soddisfatto di %s, lasciaci una valutazione di %s!" msgid "Include series" msgstr "" -#: orgSeries-options.php:282 +#: orgSeries-options.php:290 msgid "" "Is the location token for where the contents of the post list post templates " "will appear and use provided widget post short title." msgstr "" -#: orgSeries-options.php:280 +#: orgSeries-options.php:288 msgid "" "Is the location token for where the contents of the post list post templates " "will appear." @@ -300,23 +300,23 @@ msgstr "" "È il token di posizione in cui verranno visualizzati i contenuti dei " "template degli articoli dell'elenco di articoli." -#: orgSeries-widgets.php:13 orgSeries-options.php:610 +#: orgSeries-widgets.php:13 orgSeries-options.php:619 msgid "Latest Series" msgstr "Ultime serie" -#: orgSeries-options.php:621 +#: orgSeries-options.php:630 msgid "Latest Series (inner tags):" msgstr "Ultima serie (inner tag):" -#: orgSeries-options.php:626 +#: orgSeries-options.php:635 msgid "Latest Series (tags after):" msgstr "Ultima serie (tag after):" -#: orgSeries-options.php:616 +#: orgSeries-options.php:625 msgid "Latest Series (tags before):" msgstr "Ultima serie (tag before):" -#: orgSeries-options.php:743 +#: orgSeries-options.php:752 msgid "Layout:" msgstr "" @@ -339,7 +339,7 @@ msgstr "Chiave della licenza attivata con successo." msgid "License Key successfully deactivated." msgstr "Chiave della licenza disattivata con successo." -#: orgSeries-options.php:735 +#: orgSeries-options.php:744 msgid "List" msgstr "" @@ -351,15 +351,15 @@ msgstr "Gestisci tutte le serie" msgid "Manage Series" msgstr "Gestione delle serie" -#: orgSeries-options.php:403 +#: orgSeries-options.php:412 msgid "Maximum number of items in Series Post List" msgstr "" -#: orgSeries-options.php:704 +#: orgSeries-options.php:713 msgid "Migrate" msgstr "" -#: orgSeries-options.php:708 +#: orgSeries-options.php:717 msgid "Migrate series to new taxonomy" msgstr "" @@ -392,11 +392,11 @@ msgstr "Nome della serie" msgid "New Series Name" msgstr "Nome nuova serie" -#: orgSeries-options.php:592 +#: orgSeries-options.php:601 msgid "Next Post" msgstr "" -#: orgSeries-options.php:334 +#: orgSeries-options.php:343 msgid "No" msgstr "No" @@ -448,11 +448,11 @@ msgstr "" msgid "Order by\t" msgstr "" -#: orgSeries-options.php:456 +#: orgSeries-options.php:465 msgid "Order by date" msgstr "Ordina per data" -#: orgSeries-options.php:453 +#: orgSeries-options.php:462 msgid "Order series by:" msgstr "Ordina serie per:" @@ -460,7 +460,7 @@ msgstr "Ordina serie per:" msgid "Other posts in series:" msgstr "Altri articoli della serie:" -#: orgSeries-options.php:266 +#: orgSeries-options.php:274 msgid "Overview" msgstr "Panoramica" @@ -476,7 +476,11 @@ msgstr "" msgid "Part:" msgstr "Parte:" -#: orgSeries-options.php:759 +#: orgSeries-options.php:91 +msgid "Permission denied" +msgstr "" + +#: orgSeries-options.php:768 #, php-format msgid "" "Please note: choosing a layout different to \"Default\" will override the " @@ -484,7 +488,7 @@ msgid "" "target=\"_blank\">customize the template." msgstr "" -#: orgSeries-options.php:710 +#: orgSeries-options.php:719 msgid "" "Please use with caution. Running this process will delete all the terms from " "the current taxonomy and migrate them to a new taxonomy." @@ -502,7 +506,7 @@ msgstr "Titolo dell'articolo nel widget:" msgid "Posts from the series: " msgstr "Articoli della serie: " -#: orgSeries-options.php:597 +#: orgSeries-options.php:606 msgid "Previous Post" msgstr "" @@ -540,15 +544,15 @@ msgstr "Documentazione di PublishPress Series" msgid "PublishPress Series Options" msgstr "Opzioni PublishPress Series" -#: orgSeries-options.php:230 +#: orgSeries-options.php:238 msgid "PublishPress Series Plugin Options" msgstr "Opzioni plugin PublishPress Series" -#: orgSeries-options.php:90 +#: orgSeries-options.php:98 msgid "PublishPress Series Plugin Options have been RESET" msgstr "Le opzioni del plugin PublishPress Series sono state reimpostate" -#: orgSeries-options.php:125 +#: orgSeries-options.php:133 msgid "PublishPress Series Plugin Options have been updated" msgstr "Le opzioni del plugin PublishPress Series sono state aggiornate" @@ -560,15 +564,15 @@ msgstr "Casuale" msgid "Read more" msgstr "Leggi tutto" -#: orgSeries-options.php:802 +#: orgSeries-options.php:811 msgid "Reset options to default" msgstr "Reimposta le opzioni ai valori predefiniti" -#: orgSeries-options.php:799 +#: orgSeries-options.php:808 msgid "Reset settings" msgstr "Reimposta le impostazioni" -#: orgSeries-options.php:272 +#: orgSeries-options.php:280 msgid "" "Same as %series_icon% except that the series icon will be linked to the " "series page" @@ -576,7 +580,7 @@ msgstr "" "Uguale a %series_icon% tranne per il fatto che l'icona della serie sarà " "collegata alla pagina della serie" -#: orgSeries-options.php:278 +#: orgSeries-options.php:286 msgid "" "Same as %series_title% except that it will also be linked to the series page" msgstr "" @@ -608,7 +612,7 @@ msgstr "Seleziona serie" msgid "Series" msgstr "Serie" -#: orgSeries-options.php:717 +#: orgSeries-options.php:726 msgid "Series Custom Base:" msgstr "Base personalizzata della serie:" @@ -620,19 +624,19 @@ msgstr "Caricamento dell'icona della serie:" msgid "series id" msgstr "" -#: orgSeries-options.php:558 +#: orgSeries-options.php:567 msgid "Series Meta (with excerpts):" msgstr "Meta serie (con riassunto):" -#: orgSeries-options.php:532 +#: orgSeries-options.php:541 msgid "Series Meta Box" msgstr "" -#: orgSeries-options.php:538 +#: orgSeries-options.php:547 msgid "Series Meta:" msgstr "Meta serie:" -#: orgSeries-options.php:544 +#: orgSeries-options.php:553 msgid "Series Metabox Location" msgstr "" @@ -640,15 +644,15 @@ msgstr "" msgid "Series Navigation" msgstr "Navigazione serie" -#: orgSeries-options.php:567 +#: orgSeries-options.php:576 msgid "Series Navigation Box" msgstr "" -#: orgSeries-options.php:460 +#: orgSeries-options.php:469 msgid "Series order method" msgstr "Metodo di ordinamento serie" -#: orgSeries-options.php:455 +#: orgSeries-options.php:464 msgid "Series part" msgstr "Parte di serie" @@ -656,42 +660,42 @@ msgstr "Parte di serie" msgid "Series Part:" msgstr "Parte della serie:" -#: orgSeries-options.php:445 +#: orgSeries-options.php:454 msgid "Series Per Page:" msgstr "Serie per pagina:" -#: orgSeries-options.php:499 +#: orgSeries-options.php:508 msgid "Series Post List" msgstr "" -#: orgSeries-options.php:494 +#: orgSeries-options.php:503 msgid "Series Post List Box" msgstr "" -#: orgSeries-options.php:504 +#: orgSeries-options.php:513 msgid "Series Post List box Location" msgstr "" -#: orgSeries-options.php:524 +#: orgSeries-options.php:533 #, fuzzy #| msgid "Series Post List Current Post Title Template:" msgid "Series Post List Current Post Title" msgstr "" "Template titolo articolo corrente nell'elenco degli articoli della serie:" -#: orgSeries-options.php:518 +#: orgSeries-options.php:527 msgid "Series Post List Post Title" msgstr "" -#: orgSeries-options.php:578 +#: orgSeries-options.php:587 msgid "Series Post Navigation Location" msgstr "" -#: orgSeries-options.php:573 +#: orgSeries-options.php:582 msgid "Series Post Navigation:" msgstr "" -#: orgSeries-options.php:788 +#: orgSeries-options.php:797 msgid "Series Settings" msgstr "Impostazioni di Series" @@ -699,7 +703,7 @@ msgstr "Impostazioni di Series" msgid "Series Slug" msgstr "Slug della serie" -#: orgSeries-widgets.php:103 orgSeries-options.php:631 orgSeries-setup.php:416 +#: orgSeries-widgets.php:103 orgSeries-options.php:640 orgSeries-setup.php:416 msgid "Series Table of Contents" msgstr "Indice delle serie" @@ -707,15 +711,15 @@ msgstr "Indice delle serie" msgid "Series Table of Contents << " msgstr "Indice della serie << " -#: orgSeries-options.php:449 +#: orgSeries-options.php:458 msgid "Series Table of Contents Title:" msgstr "Titolo indice della serie:" -#: orgSeries-options.php:431 +#: orgSeries-options.php:440 msgid "Series Table of Contents URL:" msgstr "URL indice serie:" -#: orgSeries-options.php:694 +#: orgSeries-options.php:703 msgid "Series Taxonomy:" msgstr "" @@ -763,7 +767,7 @@ msgstr "Non hai il permesso per aggiungere delle serie" msgid "Sorry, no results found." msgstr "" -#: orgSeries-options.php:419 +#: orgSeries-options.php:428 msgid "Style options" msgstr "Opzioni di stile" @@ -797,7 +801,7 @@ msgstr "" "Questo metodo %1$s può essere utilizzato solo per registrare un figlio di " "%2%s." -#: orgSeries-options.php:268 +#: orgSeries-options.php:276 msgid "" "The following is a legend of the tokens that are available for use in the " "custom template fields. These will be replaced with the appropriate values " @@ -892,32 +896,32 @@ msgstr "" "può essere utilizzato soltanto per inviare valori a questo elemento dati " "quando è un array." -#: orgSeries-options.php:569 +#: orgSeries-options.php:578 msgid "This display is shown at the bottom of all posts in a series." msgstr "" -#: orgSeries-options.php:496 orgSeries-options.php:534 +#: orgSeries-options.php:505 orgSeries-options.php:543 msgid "This display is shown at the top of all posts in a series." msgstr "" -#: orgSeries-options.php:612 +#: orgSeries-options.php:621 msgid "This display is used by the \"Series Table of Contents\" widget." msgstr "" -#: orgSeries-options.php:633 +#: orgSeries-options.php:642 msgid "" "This display is used by the \"Series Table of Contents\". To find the URL " "for this display, go the \"Display\" tab and then \"Series Table of Contents " "URL\"." msgstr "" -#: orgSeries-options.php:698 +#: orgSeries-options.php:707 msgid "" "This feature allows you to create a new taxonomy for this plugin to use if " "you don't want to use the default \"Series\" taxonomy." msgstr "" -#: orgSeries-options.php:360 +#: orgSeries-options.php:369 msgid "" "This section is for the icons that show with your series. Note that you must " "use a token for the icon in the \"Templates\" settings." @@ -925,7 +929,7 @@ msgstr "" "Questa sezione è per le icone mostrate con la tua serie. Tieni presente che " "devi utilizzare un token per l'icona nelle impostazioni \"Template\"." -#: orgSeries-options.php:719 +#: orgSeries-options.php:728 msgid "This text will be part of the URL for all Series Overview pages." msgstr "" @@ -933,7 +937,7 @@ msgstr "" msgid "This text will display above other posts in this series." msgstr "Questo testo verrà mostrato sopra agli altri articoli in questa serie." -#: orgSeries-options.php:274 +#: orgSeries-options.php:282 msgid "" "This token is for use with the orgSeries widget only - it references where " "you want the list of series titles to be inserted and requires that the " @@ -944,11 +948,11 @@ msgstr "" "serie e richiede che sia impostato anche il template per ciascun titolo " "della serie." -#: orgSeries-options.php:270 +#: orgSeries-options.php:278 msgid "This will be replaced with the series icon for a series." msgstr "Questa verrà sostituita con l'icona della serie per una serie." -#: orgSeries-options.php:276 +#: orgSeries-options.php:284 msgid "This will be replaced with the title of a series" msgstr "Questo sarà sostituito con il titolo di una serie" @@ -964,7 +968,7 @@ msgstr "" "Per rimuovere questo avviso puoi disattivare il plugin oppure aggiornare la " "versione del php del tuo server." -#: orgSeries-options.php:482 +#: orgSeries-options.php:491 msgid "Top" msgstr "" @@ -972,11 +976,11 @@ msgstr "" msgid "Unable to retrieve an instance of %1$s. Not found." msgstr "Impossibile recuperare un'istanza di %1$s. Non è stata trovata." -#: orgSeries-options.php:218 +#: orgSeries-options.php:226 msgid "Uninstall / Reset" msgstr "" -#: orgSeries-options.php:329 +#: orgSeries-options.php:338 msgid "Update Options" msgstr "Aggiorna opzioni" @@ -988,31 +992,31 @@ msgstr "Aggiorna serie" msgid "Upload an image for the series." msgstr "Carica un'immagine per la serie." -#: orgSeries-options.php:217 +#: orgSeries-options.php:225 msgid "URLs and Taxonomy" msgstr "" -#: orgSeries-options.php:422 +#: orgSeries-options.php:431 msgid "Use box style" msgstr "" -#: orgSeries-options.php:423 +#: orgSeries-options.php:432 msgid "Use dark style" msgstr "Usa lo stile scuro" -#: orgSeries-options.php:421 +#: orgSeries-options.php:430 msgid "Use default style" msgstr "Usa lo stile predefinito" -#: orgSeries-options.php:424 +#: orgSeries-options.php:433 msgid "Use light style" msgstr "Usa lo stile chiaro" -#: orgSeries-options.php:415 +#: orgSeries-options.php:424 msgid "Use PublishPress Series CSS styles?" msgstr "" -#: orgSeries-options.php:294 +#: orgSeries-options.php:302 msgid "" "Use this tag either before or after the rest of the template code. It will " "indicate where you want the content of a post to display." @@ -1036,28 +1040,28 @@ msgstr "Visualizza tutte le serie" msgid "When Series was Created" msgstr "Quando è stata creata la serie" -#: orgSeries-options.php:671 +#: orgSeries-options.php:680 msgid "Width for icon if displayed via the latest series template (in pixels)." msgstr "" "Larghezza dell'icona se visualizzata tramite il template ultima serie (in " "pixels)." -#: orgSeries-options.php:665 +#: orgSeries-options.php:674 msgid "Width for icon on a post page (in pixels)." msgstr "Larghezza dell'icona sulla pagina di un articolo (in pixel)." -#: orgSeries-options.php:659 +#: orgSeries-options.php:668 msgid "Width for icon on series table of contents page (in pixels)" msgstr "Larghezza dell'icona sulla pagina indice di una serie (in pixel)." -#: orgSeries-options.php:292 +#: orgSeries-options.php:300 msgid "" "Will be replaced by the navigation link for the first post in a series. The " "text will be whatever is included in the 'Custom First Post Navigation Text' " "field. If that field is empty then the text will be the title of the post" msgstr "" -#: orgSeries-options.php:290 +#: orgSeries-options.php:298 msgid "" "Will be replaced by the navigation link for the next post in a series. The " "text will be whatever is included in the 'Custom Next Post Navigation Text' " @@ -1068,7 +1072,7 @@ msgstr "" "navigazione personalizzato articolo successivo\". Se quel campo è vuoto, " "verrà usato come testo il titolo dell'articolo" -#: orgSeries-options.php:288 +#: orgSeries-options.php:296 msgid "" "Will be replaced by the navigation link for the previous post in a series. " "The text will be whatever is included in the 'Custom Previous Post " @@ -1080,12 +1084,12 @@ msgstr "" "navigazione personalizzato articolo precedente\". Se quel campo è vuoto, " "verrà usato come testo il titolo dell'articolo" -#: orgSeries-options.php:284 +#: orgSeries-options.php:292 msgid "Will be replaced with the post title of a post in the series" msgstr "" "Verrà sostituito con il titolo dell'articolo di un articolo della serie" -#: orgSeries-options.php:286 +#: orgSeries-options.php:294 msgid "" "Will be replaced with the post title of a post in the series linked to the " "page view of that post." @@ -1093,19 +1097,19 @@ msgstr "" "Verrà sostituito con il titolo dell'articolo di un articolo della serie " "collegata alla visualizzazione della pagina di quell'articolo." -#: orgSeries-options.php:300 +#: orgSeries-options.php:308 msgid "Will display the description for the series" msgstr "Visualizzerà la descrizione per la serie" -#: orgSeries-options.php:298 +#: orgSeries-options.php:306 msgid "Will display the total number of posts in a series" msgstr "Visualizzerà il numero totale degli articoli di una serie" -#: orgSeries-options.php:296 +#: orgSeries-options.php:304 msgid "Will display what part of a series the post is" msgstr "Visualizzerà quale parte di una serie è l'articolo" -#: orgSeries-options.php:335 +#: orgSeries-options.php:344 msgid "Yes" msgstr "Sì" diff --git a/languages/organize-series.pot b/languages/organize-series.pot index b4e20756..e2872278 100644 --- a/languages/organize-series.pot +++ b/languages/organize-series.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Publishpress Series Core Plugin\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-09 15:23+0000\n" +"POT-Creation-Date: 2022-01-05 15:07+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Darren Ethier+ +
+ +
+ +
+ Click here for details on how to customize these designs.', 'organize-series'), + 'https://publishpress.com/knowledge-base/series-archive-templates/' + ); + _e('', 'organize-series'); ?> +
+