From 9d8ae26ded9af0f2ce780db756307166a0b4c077 Mon Sep 17 00:00:00 2001 From: jesseeproductions Date: Fri, 14 Jan 2022 17:20:48 -0500 Subject: [PATCH] duplicate feature meta change --- languages/plugin-engine-es_ES.po | 994 ++++---- languages/plugin-engine-pt_BR.po | 982 ++++---- languages/plugin-engine.pot | 1066 ++++---- package.json | 2 +- pngx-common.php | 2 +- readme.txt | 12 + src/Pngx/Add_Capabilities.php | 222 +- src/Pngx/Admin/Ajax.php | 572 ++--- src/Pngx/Admin/Assets.php | 2 +- src/Pngx/Admin/EDD_Plugin_Updater.php | 998 ++++---- src/Pngx/Admin/Field/Checkbox.php | 148 +- src/Pngx/Admin/Field/Color.php | 128 +- src/Pngx/Admin/Field/Date.php | 100 +- src/Pngx/Admin/Field/Heading.php | 62 +- src/Pngx/Admin/Field/Help.php | 82 +- src/Pngx/Admin/Field/Hidden.php | 66 +- src/Pngx/Admin/Field/Icon.php | 124 +- src/Pngx/Admin/Field/License.php | 94 +- src/Pngx/Admin/Field/List.php | 74 +- src/Pngx/Admin/Field/Message.php | 50 +- src/Pngx/Admin/Field/Number.php | 110 +- src/Pngx/Admin/Field/Radio.php | 112 +- src/Pngx/Admin/Field/Select.php | 176 +- src/Pngx/Admin/Field/Template.php | 68 +- src/Pngx/Admin/Field/Text.php | 128 +- src/Pngx/Admin/Field/Textarea.php | 98 +- src/Pngx/Admin/Field/Variety.php | 356 +-- src/Pngx/Admin/Field/Wysiwyg.php | 242 +- src/Pngx/Admin/Help.php | 440 ++-- src/Pngx/Admin/Meta.php | 37 +- src/Pngx/Admin/Plugin_License_List.php | 496 ++-- src/Pngx/Admin/Style/Linked.php | 98 +- src/Pngx/Admin/Support.php | 1274 +++++----- src/Pngx/Allowed_Tags.php | 94 +- src/Pngx/Duplicate/Post_Types.php | 202 +- src/Pngx/Field/Content.php | 130 +- src/Pngx/Field/Icon.php | 66 +- src/Pngx/Field/Title.php | 78 +- src/Pngx/Field/Variety.php | 96 +- src/Pngx/Field/Wrap.php | 74 +- src/Pngx/Fields.php | 184 +- src/Pngx/Main.php | 2 +- src/Pngx/Style/Linked.php | 176 +- .../fonts/glyphicons-halflings-regular.svg | 752 +++--- src/resources/js/bumpdown.js | 590 ++--- src/resources/js/dependency.js | 486 ++-- src/resources/js/notice-dismiss.min.js | 1 + src/resources/js/pngx-admin.js | 1634 ++++++------ src/resources/js/pngx-admin.min.js | 2 +- src/resources/js/pngx-license.js | 292 +-- src/resources/js/templates.js | 136 +- src/resources/js/wp_editor.js | 728 +++--- vendor/browser/browser.php | 2206 ++++++++--------- vendor/clipboard/clipboard.js | 1554 ++++++------ vendor/clipboard/clipboard.min.js | 12 +- vendor/colorbox/jquery.colorbox-min.js | 5 +- vendor/colorbox/jquery.colorbox.js | 1122 ++++----- .../wp-color-picker-alpha.min.js | 22 +- 58 files changed, 10047 insertions(+), 10012 deletions(-) create mode 100644 src/resources/js/notice-dismiss.min.js diff --git a/languages/plugin-engine-es_ES.po b/languages/plugin-engine-es_ES.po index ececaf5..6bb33f7 100644 --- a/languages/plugin-engine-es_ES.po +++ b/languages/plugin-engine-es_ES.po @@ -1,497 +1,497 @@ -msgid "" -msgstr "" -"Project-Id-Version: Plugin Engine\n" -"POT-Creation-Date: 2018-04-20 15:57-0400\n" -"PO-Revision-Date: 2018-04-20 15:57-0400\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: es_ES\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.8.12\n" -"X-Poedit-Basepath: ..\n" -"X-Poedit-WPHeader: pngx-common.php\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" -"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" -"_nx_noop:3c,1,2;__ngettext_noop:1,2\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: *.js\n" -"X-Poedit-SearchPathExcluded-1: .git\n" -"X-Poedit-SearchPathExcluded-2: vendor\n" -"X-Poedit-SearchPathExcluded-3: node_modules\n" -"X-Poedit-SearchPathExcluded-4: languages\n" -"X-Poedit-SearchPathExcluded-5: src/resources\n" - -#: src/Pngx/Admin/Ajax.php:35 -msgid "A Permission Error has occurred. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:40 src/Pngx/Admin/Ajax.php:128 -#: src/Pngx/Admin/Ajax.php:133 src/Pngx/Admin/Ajax.php:229 -#: src/Pngx/Admin/Ajax.php:234 -msgid "Permission Error has occurred. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:44 -msgid "No Template ID. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:137 src/Pngx/Admin/Ajax.php:238 -msgid "No Field ID. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:141 -msgid "No Option ID. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:246 -msgid "No Section Number Provided." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:250 -msgid "No Column Number Provided." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:263 -msgid "No Field Exists." -msgstr "" - -#: src/Pngx/Admin/Assets.php:130 src/Pngx/Admin/Support.php:28 -msgid "Copy to clipboard" -msgstr "" - -#: src/Pngx/Admin/Assets.php:131 -msgid "System info copied" -msgstr "" - -#: src/Pngx/Admin/Assets.php:132 -msgid "Press \"Cmd + C\" to copy" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:208 -msgid "Incorrect Permissions!" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:212 -msgid "No Data!" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:218 -msgid "Missing Required Fields" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:222 -msgid "Incorrect Capabilities!" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:319 src/Pngx/Admin/EDD_License.php:441 -msgid "An error occurred, please try again." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:324 -msgid "License status has not changed with the license server." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:380 -#: src/Pngx/Admin/Field/License_Status.php:35 -#: src/Pngx/Admin/Plugin_License_List.php:127 -#, php-format -msgid " and Expires on %s" -msgstr "y expira el %s" - -#: src/Pngx/Admin/EDD_License.php:384 -msgid "License Saved and Valid" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:387 -#: src/Pngx/Admin/Field/License_Status.php:43 -#: src/Pngx/Admin/Plugin_License_List.php:194 -msgid "License is Active" -msgstr "Licencia Activa" - -#: src/Pngx/Admin/EDD_License.php:418 -msgid "License Deactivated" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:420 -msgid "Click Activate License to enable automatic updates." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:426 -msgid "" -"License Deactivated locally, it could not be deactivated with the server due " -"to:" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:451 -#: src/Pngx/Admin/Field/License_Status.php:54 -#: src/Pngx/Admin/Plugin_License_List.php:205 -#, php-format -msgid "License Expired on %s" -msgstr "Licencia Expiró el %s" - -#: src/Pngx/Admin/EDD_License.php:456 -msgid "Your license key has been disabled." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:461 -msgid "Invalid license." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:466 -msgid "Your license is invalid." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:471 -msgid "Your license is not active for this URL." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:476 -#, php-format -msgid "This appears to be for another plugin and invalid license key for %s." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:481 -msgid "Your license key has reached its activation limit." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:486 -msgid "" -"Your license cannot be activated or deactivated, please confirm in your " -"accoint it is active." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:495 -#: src/Pngx/Admin/Field/License_Status.php:56 -#: src/Pngx/Admin/Plugin_License_List.php:207 -msgid "License is Not Active" -msgstr "Licencia no es activo" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:201 -#, php-format -msgid "" -"There is a new version of %1$s available. %2$sView version %3$s details%4$s." -msgstr "" -"Hay una nueva version de %1$s disponible. %3$sVer detalles%4$s de la versión" -"%2$s." - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:209 -#, php-format -msgid "" -"There is a new version of %1$s available. %2$sView version %3$s details%4$s " -"or %5$supdate now%6$s." -msgstr "" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:399 -msgid "You do not have permission to install plugin updates" -msgstr "No tiene permiso para instalar actualizaciones del plugin" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:399 -msgid "Error" -msgstr "" - -#: src/Pngx/Admin/Field/Date.php:42 -msgid "Today's Date is " -msgstr "La fecha de hoy es " - -#: src/Pngx/Admin/Field/Icon.php:43 -#, php-format -msgctxt "Icon Popup Header" -msgid "%1s - %2s" -msgstr "" - -#: src/Pngx/Admin/Field/Icon.php:49 -#, php-format -msgctxt "Icon Popup Footer" -msgid "%1s - %2s of %3s" -msgstr "" - -#: src/Pngx/Admin/Field/Icon.php:50 -msgid "Search..." -msgstr "" - -#: src/Pngx/Admin/Field/License_Status.php:47 -#: src/Pngx/Admin/Plugin_License_List.php:189 -msgid "Deactivate License" -msgstr "Desactivar Licencia" - -#: src/Pngx/Admin/Field/License_Status.php:52 -#: src/Pngx/Admin/Plugin_License_List.php:203 -msgid "License is Invalid" -msgstr "Licencia no válida" - -#: src/Pngx/Admin/Field/License_Status.php:63 -#: src/Pngx/Admin/Plugin_License_List.php:220 -msgid "Activate License" -msgstr "Activar licencia" - -#: src/Pngx/Admin/Help.php:122 -msgid "Video Guides" -msgstr "Guías de vídeo" - -#: src/Pngx/Admin/Help.php:137 -msgid "Guides" -msgstr "Guías" - -#: src/Pngx/Admin/Meta.php:57 -#, php-format -msgid "" -"There maybe a javascript conflict preventing some features from working. Please check this guide to narrow down the " -"cause." -msgstr "" -"Allí tal vez un conflicto de javascript prevenir algunas de las " -"características de trabajo. Consulte esta " -"guía para reducir la causa." - -#: src/Pngx/Admin/Meta.php:106 -msgid "Content" -msgstr "Contenido" - -#: src/Pngx/Admin/Options.php:345 -msgid "Save Changes" -msgstr "Salvar cambios" - -#: src/Pngx/Admin/Plugin_License_List.php:34 -msgid "Please deactivate the license key to deactivate this plugin" -msgstr "" - -#: src/Pngx/Admin/Plugin_License_List.php:100 -msgid "Enter License Key" -msgstr "" - -#: src/Pngx/Admin/Plugin_License_List.php:106 -msgid "License Key" -msgstr "" - -#: src/Pngx/Admin/Style/Linked.php:24 -msgid "Field Styles" -msgstr "" - -#: src/Pngx/Admin/Support.php:139 -msgid "English" -msgstr "" - -#: src/Pngx/Admin/Support.php:177 src/Pngx/Admin/Support.php:179 -msgid "Unknown or not set" -msgstr "" - -#: src/Pngx/Admin/Support.php:568 -msgid "Unknown" -msgstr "" - -#: src/Pngx/Admin/Support.php:594 -msgid "Not Found" -msgstr "" - -#: src/Pngx/Cron_20.php:35 -msgid "Once Every 20 Mins" -msgstr "Una vez cada 20 minutos" - -#: src/Pngx/Register_Post_Type.php:55 -#, php-format -msgid "%s updated. View %s" -msgstr "%s actualizado. Ver %s" - -#: src/Pngx/Register_Post_Type.php:56 -msgid "Custom field updated." -msgstr "Campo personalizado actualizado." - -#: src/Pngx/Register_Post_Type.php:57 -msgid "Custom field deleted." -msgstr "Campo personalizado borrado." - -#: src/Pngx/Register_Post_Type.php:58 -#, php-format -msgid "%s updated." -msgstr "%s actualizado." - -#: src/Pngx/Register_Post_Type.php:59 -#, php-format -msgid "%s restored to revision from %s" -msgstr "%s restaurado a la revisión de %s" - -#: src/Pngx/Register_Post_Type.php:60 -#, php-format -msgid "%s published. View %s" -msgstr "%s publicado. Ver %s" - -#: src/Pngx/Register_Post_Type.php:61 -#, php-format -msgid "%s saved." -msgstr "%s guardados." - -#: src/Pngx/Register_Post_Type.php:62 -#, php-format -msgid "%s submitted. Preview %s" -msgstr "%s enviado. Vista Previa %s" - -#: src/Pngx/Register_Post_Type.php:63 -#, php-format -msgid "" -"%s scheduled for: %1$s. Preview %s" -msgstr "" -"%s programado para: %1$s. Vista previa %s" - -#: src/Pngx/Register_Post_Type.php:63 -msgid "M j, Y @ G:i" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:64 -#, php-format -msgid "%s draft updated. Preview %s" -msgstr "" -"%s borrador actualizado. Vista previa %s" - -#: src/Pngx/Register_Post_Type.php:109 src/Pngx/Register_Post_Type.php:110 -#: src/Pngx/Register_Post_Type.php:111 src/Pngx/Register_Post_Type.php:112 -#: src/Pngx/Register_Post_Type.php:151 src/Pngx/Register_Taxonomy.php:30 -#: src/Pngx/Register_Taxonomy.php:31 src/Pngx/Register_Taxonomy.php:40 -#, php-format -msgid "%s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:113 -msgid "Add New" -msgstr "Agregar Nuevo" - -#: src/Pngx/Register_Post_Type.php:114 src/Pngx/Register_Taxonomy.php:38 -#, php-format -msgid "Add New %s" -msgstr "Agregar Nuevo %s" - -#: src/Pngx/Register_Post_Type.php:115 src/Pngx/Register_Taxonomy.php:36 -#, php-format -msgid "Edit %s" -msgstr "Editar %s" - -#: src/Pngx/Register_Post_Type.php:116 -#, php-format -msgid "New %s" -msgstr "Nueva %s" - -#: src/Pngx/Register_Post_Type.php:117 -#, php-format -msgid "View %s" -msgstr "Mostrar %s" - -#: src/Pngx/Register_Post_Type.php:118 src/Pngx/Register_Taxonomy.php:32 -#, php-format -msgid "Search %s" -msgstr "Buscar %s " - -#: src/Pngx/Register_Post_Type.php:119 -#, php-format -msgid "No %s found" -msgstr "No se encontrarón %s" - -#: src/Pngx/Register_Post_Type.php:120 -#, php-format -msgid "No %s found in Trash" -msgstr "No hay %s en la Papelera" - -#: src/Pngx/Register_Post_Type.php:121 src/Pngx/Register_Taxonomy.php:34 -#, php-format -msgid "Parent %s" -msgstr "Principal %s" - -#: src/Pngx/Register_Post_Type.php:122 src/Pngx/Register_Taxonomy.php:33 -#, php-format -msgid "All %s" -msgstr "Todos %s" - -#: src/Pngx/Register_Post_Type.php:123 src/Pngx/Register_Taxonomy.php:37 -#, php-format -msgid "Update %s" -msgstr "Actualizar %s" - -#: src/Pngx/Register_Post_Type.php:124 -#, php-format -msgid "%s Archives" -msgstr "%s Archivos" - -#: src/Pngx/Register_Post_Type.php:125 -#, php-format -msgid "Insert into %s" -msgstr "Insertar en %s" - -#: src/Pngx/Register_Post_Type.php:126 -#, php-format -msgid "Uploaded to this %s" -msgstr "Actualizado a este %s" - -#: src/Pngx/Register_Post_Type.php:127 -#, php-format -msgid "%s list" -msgstr "%s lista" - -#: src/Pngx/Register_Post_Type.php:128 -#, php-format -msgid "%s list navigation" -msgstr "Lista Navegación %s" - -#: src/Pngx/Register_Post_Type.php:129 -#, php-format -msgid "Filter %s list" -msgstr "%s Lista de Navigation" - -#: src/Pngx/Register_Post_Type.php:152 -#, php-format -msgid "Creates a %s Custom Post Type" -msgstr "Crea un tipo de mensaje personalizado de %s" - -#: src/Pngx/Register_Taxonomy.php:35 -#, php-format -msgid "Parent %s:" -msgstr "%s superior:" - -#: src/Pngx/Register_Taxonomy.php:39 -#, php-format -msgid "New %s Name" -msgstr "Nueva%s Nombre" - -#: src/Pngx/Register_Taxonomy.php:41 -#, php-format -msgid "Popular %s" -msgstr "%s populares" - -#: src/Pngx/Register_Taxonomy.php:42 -#, php-format -msgid "Separate %s with commas" -msgstr "%s se separan con comas" - -#: src/Pngx/Register_Taxonomy.php:43 -#, php-format -msgid "Add or remove %s" -msgstr "Agregar o eliminar %s" - -#: src/Pngx/Register_Taxonomy.php:44 -#, php-format -msgid "Choose from the most used %s" -msgstr "Elegir el más utilizado de %s" - -#. Plugin Name of the plugin/theme -msgid "Plugin Engine" -msgstr "Plugin Engine" - -#. Description of the plugin/theme -msgid "A plugin framework to be embeded in the core plugin" -msgstr "Manten el plugin coreo GRATIS!" - -#. Author of the plugin/theme -msgid "Jessee Productions, LLC" -msgstr "Jessee Productions, LLC" - -#. Author URI of the plugin/theme -msgid "https://jesseeproductions.com/" -msgstr "https://jesseeproductions.com/" - -#~ msgid "An event settings framework for managing shared options" -#~ msgstr "" -#~ "Un marco para la gestión de la configuración de eventos opciones " -#~ "compartidas" +msgid "" +msgstr "" +"Project-Id-Version: Plugin Engine\n" +"POT-Creation-Date: 2018-04-20 15:57-0400\n" +"PO-Revision-Date: 2018-04-20 15:57-0400\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: es_ES\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.12\n" +"X-Poedit-Basepath: ..\n" +"X-Poedit-WPHeader: pngx-common.php\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" +"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" +"_nx_noop:3c,1,2;__ngettext_noop:1,2\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPathExcluded-0: *.js\n" +"X-Poedit-SearchPathExcluded-1: .git\n" +"X-Poedit-SearchPathExcluded-2: vendor\n" +"X-Poedit-SearchPathExcluded-3: node_modules\n" +"X-Poedit-SearchPathExcluded-4: languages\n" +"X-Poedit-SearchPathExcluded-5: src/resources\n" + +#: src/Pngx/Admin/Ajax.php:35 +msgid "A Permission Error has occurred. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:40 src/Pngx/Admin/Ajax.php:128 +#: src/Pngx/Admin/Ajax.php:133 src/Pngx/Admin/Ajax.php:229 +#: src/Pngx/Admin/Ajax.php:234 +msgid "Permission Error has occurred. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:44 +msgid "No Template ID. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:137 src/Pngx/Admin/Ajax.php:238 +msgid "No Field ID. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:141 +msgid "No Option ID. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:246 +msgid "No Section Number Provided." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:250 +msgid "No Column Number Provided." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:263 +msgid "No Field Exists." +msgstr "" + +#: src/Pngx/Admin/Assets.php:130 src/Pngx/Admin/Support.php:28 +msgid "Copy to clipboard" +msgstr "" + +#: src/Pngx/Admin/Assets.php:131 +msgid "System info copied" +msgstr "" + +#: src/Pngx/Admin/Assets.php:132 +msgid "Press \"Cmd + C\" to copy" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:208 +msgid "Incorrect Permissions!" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:212 +msgid "No Data!" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:218 +msgid "Missing Required Fields" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:222 +msgid "Incorrect Capabilities!" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:319 src/Pngx/Admin/EDD_License.php:441 +msgid "An error occurred, please try again." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:324 +msgid "License status has not changed with the license server." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:380 +#: src/Pngx/Admin/Field/License_Status.php:35 +#: src/Pngx/Admin/Plugin_License_List.php:127 +#, php-format +msgid " and Expires on %s" +msgstr "y expira el %s" + +#: src/Pngx/Admin/EDD_License.php:384 +msgid "License Saved and Valid" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:387 +#: src/Pngx/Admin/Field/License_Status.php:43 +#: src/Pngx/Admin/Plugin_License_List.php:194 +msgid "License is Active" +msgstr "Licencia Activa" + +#: src/Pngx/Admin/EDD_License.php:418 +msgid "License Deactivated" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:420 +msgid "Click Activate License to enable automatic updates." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:426 +msgid "" +"License Deactivated locally, it could not be deactivated with the server due " +"to:" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:451 +#: src/Pngx/Admin/Field/License_Status.php:54 +#: src/Pngx/Admin/Plugin_License_List.php:205 +#, php-format +msgid "License Expired on %s" +msgstr "Licencia Expiró el %s" + +#: src/Pngx/Admin/EDD_License.php:456 +msgid "Your license key has been disabled." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:461 +msgid "Invalid license." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:466 +msgid "Your license is invalid." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:471 +msgid "Your license is not active for this URL." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:476 +#, php-format +msgid "This appears to be for another plugin and invalid license key for %s." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:481 +msgid "Your license key has reached its activation limit." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:486 +msgid "" +"Your license cannot be activated or deactivated, please confirm in your " +"accoint it is active." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:495 +#: src/Pngx/Admin/Field/License_Status.php:56 +#: src/Pngx/Admin/Plugin_License_List.php:207 +msgid "License is Not Active" +msgstr "Licencia no es activo" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:201 +#, php-format +msgid "" +"There is a new version of %1$s available. %2$sView version %3$s details%4$s." +msgstr "" +"Hay una nueva version de %1$s disponible. %3$sVer detalles%4$s de la versión" +"%2$s." + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:209 +#, php-format +msgid "" +"There is a new version of %1$s available. %2$sView version %3$s details%4$s " +"or %5$supdate now%6$s." +msgstr "" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:399 +msgid "You do not have permission to install plugin updates" +msgstr "No tiene permiso para instalar actualizaciones del plugin" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:399 +msgid "Error" +msgstr "" + +#: src/Pngx/Admin/Field/Date.php:42 +msgid "Today's Date is " +msgstr "La fecha de hoy es " + +#: src/Pngx/Admin/Field/Icon.php:43 +#, php-format +msgctxt "Icon Popup Header" +msgid "%1s - %2s" +msgstr "" + +#: src/Pngx/Admin/Field/Icon.php:49 +#, php-format +msgctxt "Icon Popup Footer" +msgid "%1s - %2s of %3s" +msgstr "" + +#: src/Pngx/Admin/Field/Icon.php:50 +msgid "Search..." +msgstr "" + +#: src/Pngx/Admin/Field/License_Status.php:47 +#: src/Pngx/Admin/Plugin_License_List.php:189 +msgid "Deactivate License" +msgstr "Desactivar Licencia" + +#: src/Pngx/Admin/Field/License_Status.php:52 +#: src/Pngx/Admin/Plugin_License_List.php:203 +msgid "License is Invalid" +msgstr "Licencia no válida" + +#: src/Pngx/Admin/Field/License_Status.php:63 +#: src/Pngx/Admin/Plugin_License_List.php:220 +msgid "Activate License" +msgstr "Activar licencia" + +#: src/Pngx/Admin/Help.php:122 +msgid "Video Guides" +msgstr "Guías de vídeo" + +#: src/Pngx/Admin/Help.php:137 +msgid "Guides" +msgstr "Guías" + +#: src/Pngx/Admin/Meta.php:57 +#, php-format +msgid "" +"There maybe a javascript conflict preventing some features from working. Please check this guide to narrow down the " +"cause." +msgstr "" +"Allí tal vez un conflicto de javascript prevenir algunas de las " +"características de trabajo. Consulte esta " +"guía para reducir la causa." + +#: src/Pngx/Admin/Meta.php:106 +msgid "Content" +msgstr "Contenido" + +#: src/Pngx/Admin/Options.php:345 +msgid "Save Changes" +msgstr "Salvar cambios" + +#: src/Pngx/Admin/Plugin_License_List.php:34 +msgid "Please deactivate the license key to deactivate this plugin" +msgstr "" + +#: src/Pngx/Admin/Plugin_License_List.php:100 +msgid "Enter License Key" +msgstr "" + +#: src/Pngx/Admin/Plugin_License_List.php:106 +msgid "License Key" +msgstr "" + +#: src/Pngx/Admin/Style/Linked.php:24 +msgid "Field Styles" +msgstr "" + +#: src/Pngx/Admin/Support.php:139 +msgid "English" +msgstr "" + +#: src/Pngx/Admin/Support.php:177 src/Pngx/Admin/Support.php:179 +msgid "Unknown or not set" +msgstr "" + +#: src/Pngx/Admin/Support.php:568 +msgid "Unknown" +msgstr "" + +#: src/Pngx/Admin/Support.php:594 +msgid "Not Found" +msgstr "" + +#: src/Pngx/Cron_20.php:35 +msgid "Once Every 20 Mins" +msgstr "Una vez cada 20 minutos" + +#: src/Pngx/Register_Post_Type.php:55 +#, php-format +msgid "%s updated. View %s" +msgstr "%s actualizado. Ver %s" + +#: src/Pngx/Register_Post_Type.php:56 +msgid "Custom field updated." +msgstr "Campo personalizado actualizado." + +#: src/Pngx/Register_Post_Type.php:57 +msgid "Custom field deleted." +msgstr "Campo personalizado borrado." + +#: src/Pngx/Register_Post_Type.php:58 +#, php-format +msgid "%s updated." +msgstr "%s actualizado." + +#: src/Pngx/Register_Post_Type.php:59 +#, php-format +msgid "%s restored to revision from %s" +msgstr "%s restaurado a la revisión de %s" + +#: src/Pngx/Register_Post_Type.php:60 +#, php-format +msgid "%s published. View %s" +msgstr "%s publicado. Ver %s" + +#: src/Pngx/Register_Post_Type.php:61 +#, php-format +msgid "%s saved." +msgstr "%s guardados." + +#: src/Pngx/Register_Post_Type.php:62 +#, php-format +msgid "%s submitted. Preview %s" +msgstr "%s enviado. Vista Previa %s" + +#: src/Pngx/Register_Post_Type.php:63 +#, php-format +msgid "" +"%s scheduled for: %1$s. Preview %s" +msgstr "" +"%s programado para: %1$s. Vista previa %s" + +#: src/Pngx/Register_Post_Type.php:63 +msgid "M j, Y @ G:i" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:64 +#, php-format +msgid "%s draft updated. Preview %s" +msgstr "" +"%s borrador actualizado. Vista previa %s" + +#: src/Pngx/Register_Post_Type.php:109 src/Pngx/Register_Post_Type.php:110 +#: src/Pngx/Register_Post_Type.php:111 src/Pngx/Register_Post_Type.php:112 +#: src/Pngx/Register_Post_Type.php:151 src/Pngx/Register_Taxonomy.php:30 +#: src/Pngx/Register_Taxonomy.php:31 src/Pngx/Register_Taxonomy.php:40 +#, php-format +msgid "%s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:113 +msgid "Add New" +msgstr "Agregar Nuevo" + +#: src/Pngx/Register_Post_Type.php:114 src/Pngx/Register_Taxonomy.php:38 +#, php-format +msgid "Add New %s" +msgstr "Agregar Nuevo %s" + +#: src/Pngx/Register_Post_Type.php:115 src/Pngx/Register_Taxonomy.php:36 +#, php-format +msgid "Edit %s" +msgstr "Editar %s" + +#: src/Pngx/Register_Post_Type.php:116 +#, php-format +msgid "New %s" +msgstr "Nueva %s" + +#: src/Pngx/Register_Post_Type.php:117 +#, php-format +msgid "View %s" +msgstr "Mostrar %s" + +#: src/Pngx/Register_Post_Type.php:118 src/Pngx/Register_Taxonomy.php:32 +#, php-format +msgid "Search %s" +msgstr "Buscar %s " + +#: src/Pngx/Register_Post_Type.php:119 +#, php-format +msgid "No %s found" +msgstr "No se encontrarón %s" + +#: src/Pngx/Register_Post_Type.php:120 +#, php-format +msgid "No %s found in Trash" +msgstr "No hay %s en la Papelera" + +#: src/Pngx/Register_Post_Type.php:121 src/Pngx/Register_Taxonomy.php:34 +#, php-format +msgid "Parent %s" +msgstr "Principal %s" + +#: src/Pngx/Register_Post_Type.php:122 src/Pngx/Register_Taxonomy.php:33 +#, php-format +msgid "All %s" +msgstr "Todos %s" + +#: src/Pngx/Register_Post_Type.php:123 src/Pngx/Register_Taxonomy.php:37 +#, php-format +msgid "Update %s" +msgstr "Actualizar %s" + +#: src/Pngx/Register_Post_Type.php:124 +#, php-format +msgid "%s Archives" +msgstr "%s Archivos" + +#: src/Pngx/Register_Post_Type.php:125 +#, php-format +msgid "Insert into %s" +msgstr "Insertar en %s" + +#: src/Pngx/Register_Post_Type.php:126 +#, php-format +msgid "Uploaded to this %s" +msgstr "Actualizado a este %s" + +#: src/Pngx/Register_Post_Type.php:127 +#, php-format +msgid "%s list" +msgstr "%s lista" + +#: src/Pngx/Register_Post_Type.php:128 +#, php-format +msgid "%s list navigation" +msgstr "Lista Navegación %s" + +#: src/Pngx/Register_Post_Type.php:129 +#, php-format +msgid "Filter %s list" +msgstr "%s Lista de Navigation" + +#: src/Pngx/Register_Post_Type.php:152 +#, php-format +msgid "Creates a %s Custom Post Type" +msgstr "Crea un tipo de mensaje personalizado de %s" + +#: src/Pngx/Register_Taxonomy.php:35 +#, php-format +msgid "Parent %s:" +msgstr "%s superior:" + +#: src/Pngx/Register_Taxonomy.php:39 +#, php-format +msgid "New %s Name" +msgstr "Nueva%s Nombre" + +#: src/Pngx/Register_Taxonomy.php:41 +#, php-format +msgid "Popular %s" +msgstr "%s populares" + +#: src/Pngx/Register_Taxonomy.php:42 +#, php-format +msgid "Separate %s with commas" +msgstr "%s se separan con comas" + +#: src/Pngx/Register_Taxonomy.php:43 +#, php-format +msgid "Add or remove %s" +msgstr "Agregar o eliminar %s" + +#: src/Pngx/Register_Taxonomy.php:44 +#, php-format +msgid "Choose from the most used %s" +msgstr "Elegir el más utilizado de %s" + +#. Plugin Name of the plugin/theme +msgid "Plugin Engine" +msgstr "Plugin Engine" + +#. Description of the plugin/theme +msgid "A plugin framework to be embeded in the core plugin" +msgstr "Manten el plugin coreo GRATIS!" + +#. Author of the plugin/theme +msgid "Jessee Productions, LLC" +msgstr "Jessee Productions, LLC" + +#. Author URI of the plugin/theme +msgid "https://jesseeproductions.com/" +msgstr "https://jesseeproductions.com/" + +#~ msgid "An event settings framework for managing shared options" +#~ msgstr "" +#~ "Un marco para la gestión de la configuración de eventos opciones " +#~ "compartidas" diff --git a/languages/plugin-engine-pt_BR.po b/languages/plugin-engine-pt_BR.po index 046c387..d7dc71f 100644 --- a/languages/plugin-engine-pt_BR.po +++ b/languages/plugin-engine-pt_BR.po @@ -1,491 +1,491 @@ -msgid "" -msgstr "" -"Project-Id-Version: Plugin Engine\n" -"POT-Creation-Date: 2018-04-20 15:57-0400\n" -"PO-Revision-Date: 2018-04-20 15:57-0400\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: pt_BR\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 1.8.12\n" -"X-Poedit-Basepath: ..\n" -"X-Poedit-WPHeader: pngx-common.php\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" -"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" -"_nx_noop:3c,1,2;__ngettext_noop:1,2\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: *.js\n" -"X-Poedit-SearchPathExcluded-1: .git\n" -"X-Poedit-SearchPathExcluded-2: vendor\n" -"X-Poedit-SearchPathExcluded-3: node_modules\n" -"X-Poedit-SearchPathExcluded-4: languages\n" -"X-Poedit-SearchPathExcluded-5: src/resources\n" - -#: src/Pngx/Admin/Ajax.php:35 -msgid "A Permission Error has occurred. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:40 src/Pngx/Admin/Ajax.php:128 -#: src/Pngx/Admin/Ajax.php:133 src/Pngx/Admin/Ajax.php:229 -#: src/Pngx/Admin/Ajax.php:234 -msgid "Permission Error has occurred. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:44 -msgid "No Template ID. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:137 src/Pngx/Admin/Ajax.php:238 -msgid "No Field ID. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:141 -msgid "No Option ID. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:246 -msgid "No Section Number Provided." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:250 -msgid "No Column Number Provided." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:263 -msgid "No Field Exists." -msgstr "" - -#: src/Pngx/Admin/Assets.php:130 src/Pngx/Admin/Support.php:28 -msgid "Copy to clipboard" -msgstr "" - -#: src/Pngx/Admin/Assets.php:131 -msgid "System info copied" -msgstr "" - -#: src/Pngx/Admin/Assets.php:132 -msgid "Press \"Cmd + C\" to copy" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:208 -msgid "Incorrect Permissions!" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:212 -msgid "No Data!" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:218 -msgid "Missing Required Fields" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:222 -msgid "Incorrect Capabilities!" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:319 src/Pngx/Admin/EDD_License.php:441 -msgid "An error occurred, please try again." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:324 -msgid "License status has not changed with the license server." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:380 -#: src/Pngx/Admin/Field/License_Status.php:35 -#: src/Pngx/Admin/Plugin_License_List.php:127 -#, php-format -msgid " and Expires on %s" -msgstr "e expira em %s" - -#: src/Pngx/Admin/EDD_License.php:384 -msgid "License Saved and Valid" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:387 -#: src/Pngx/Admin/Field/License_Status.php:43 -#: src/Pngx/Admin/Plugin_License_List.php:194 -msgid "License is Active" -msgstr "A Chave de Licença está Ativa." - -#: src/Pngx/Admin/EDD_License.php:418 -msgid "License Deactivated" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:420 -msgid "Click Activate License to enable automatic updates." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:426 -msgid "" -"License Deactivated locally, it could not be deactivated with the server due " -"to:" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:451 -#: src/Pngx/Admin/Field/License_Status.php:54 -#: src/Pngx/Admin/Plugin_License_List.php:205 -#, php-format -msgid "License Expired on %s" -msgstr "Licença expirou em %s" - -#: src/Pngx/Admin/EDD_License.php:456 -msgid "Your license key has been disabled." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:461 -msgid "Invalid license." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:466 -msgid "Your license is invalid." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:471 -msgid "Your license is not active for this URL." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:476 -#, php-format -msgid "This appears to be for another plugin and invalid license key for %s." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:481 -msgid "Your license key has reached its activation limit." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:486 -msgid "" -"Your license cannot be activated or deactivated, please confirm in your " -"accoint it is active." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:495 -#: src/Pngx/Admin/Field/License_Status.php:56 -#: src/Pngx/Admin/Plugin_License_List.php:207 -msgid "License is Not Active" -msgstr "Licença não está ativa" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:201 -#, php-format -msgid "" -"There is a new version of %1$s available. %2$sView version %3$s details%4$s." -msgstr "" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:209 -#, php-format -msgid "" -"There is a new version of %1$s available. %2$sView version %3$s details%4$s " -"or %5$supdate now%6$s." -msgstr "" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:399 -msgid "You do not have permission to install plugin updates" -msgstr "" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:399 -msgid "Error" -msgstr "" - -#: src/Pngx/Admin/Field/Date.php:42 -msgid "Today's Date is " -msgstr "Data de hoje é" - -#: src/Pngx/Admin/Field/Icon.php:43 -#, php-format -msgctxt "Icon Popup Header" -msgid "%1s - %2s" -msgstr "" - -#: src/Pngx/Admin/Field/Icon.php:49 -#, php-format -msgctxt "Icon Popup Footer" -msgid "%1s - %2s of %3s" -msgstr "" - -#: src/Pngx/Admin/Field/Icon.php:50 -msgid "Search..." -msgstr "" - -#: src/Pngx/Admin/Field/License_Status.php:47 -#: src/Pngx/Admin/Plugin_License_List.php:189 -msgid "Deactivate License" -msgstr "Desativar licença" - -#: src/Pngx/Admin/Field/License_Status.php:52 -#: src/Pngx/Admin/Plugin_License_List.php:203 -msgid "License is Invalid" -msgstr "Esta licença não é válida" - -#: src/Pngx/Admin/Field/License_Status.php:63 -#: src/Pngx/Admin/Plugin_License_List.php:220 -msgid "Activate License" -msgstr "Ativar a Licença" - -#: src/Pngx/Admin/Help.php:122 -msgid "Video Guides" -msgstr "Guias de vídeo" - -#: src/Pngx/Admin/Help.php:137 -msgid "Guides" -msgstr "Guias" - -#: src/Pngx/Admin/Meta.php:57 -#, php-format -msgid "" -"There maybe a javascript conflict preventing some features from working. Please check this guide to narrow down the " -"cause." -msgstr "" -"Há talvez um conflito de javascript, impedindo que alguns recursos " -"funcionem Por favor, verifique este guia " -"para diminuir a causa." - -#: src/Pngx/Admin/Meta.php:106 -msgid "Content" -msgstr "Conteudo" - -#: src/Pngx/Admin/Options.php:345 -msgid "Save Changes" -msgstr "Salvar alerações" - -#: src/Pngx/Admin/Plugin_License_List.php:34 -msgid "Please deactivate the license key to deactivate this plugin" -msgstr "" - -#: src/Pngx/Admin/Plugin_License_List.php:100 -msgid "Enter License Key" -msgstr "" - -#: src/Pngx/Admin/Plugin_License_List.php:106 -msgid "License Key" -msgstr "" - -#: src/Pngx/Admin/Style/Linked.php:24 -msgid "Field Styles" -msgstr "" - -#: src/Pngx/Admin/Support.php:139 -msgid "English" -msgstr "" - -#: src/Pngx/Admin/Support.php:177 src/Pngx/Admin/Support.php:179 -msgid "Unknown or not set" -msgstr "" - -#: src/Pngx/Admin/Support.php:568 -msgid "Unknown" -msgstr "" - -#: src/Pngx/Admin/Support.php:594 -msgid "Not Found" -msgstr "" - -#: src/Pngx/Cron_20.php:35 -msgid "Once Every 20 Mins" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:55 -#, php-format -msgid "%s updated. View %s" -msgstr "%s atualizado. Veja %s" - -#: src/Pngx/Register_Post_Type.php:56 -msgid "Custom field updated." -msgstr "Cor do campo de oferta" - -#: src/Pngx/Register_Post_Type.php:57 -msgid "Custom field deleted." -msgstr "Campo personalizado deletado." - -#: src/Pngx/Register_Post_Type.php:58 -#, php-format -msgid "%s updated." -msgstr "e expira em %s" - -#: src/Pngx/Register_Post_Type.php:59 -#, php-format -msgid "%s restored to revision from %s" -msgstr "%s restaurado da revisão de %s" - -#: src/Pngx/Register_Post_Type.php:60 -#, php-format -msgid "%s published. View %s" -msgstr "%s publicado. Ver %s " - -#: src/Pngx/Register_Post_Type.php:61 -#, php-format -msgid "%s saved." -msgstr "Licença expirou em %s" - -#: src/Pngx/Register_Post_Type.php:62 -#, php-format -msgid "%s submitted. Preview %s" -msgstr "%s enviado. Pré-visualizar %s" - -#: src/Pngx/Register_Post_Type.php:63 -#, php-format -msgid "" -"%s scheduled for: %1$s. Preview %s" -msgstr "" -"%s agendado para: %1$s. Pré-visualizar " - -#: src/Pngx/Register_Post_Type.php:63 -msgid "M j, Y @ G:i" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:64 -#, php-format -msgid "%s draft updated. Preview %s" -msgstr "" -"Rascunho de %s atualizado. Pré-" -"visualizar %s " - -#: src/Pngx/Register_Post_Type.php:109 src/Pngx/Register_Post_Type.php:110 -#: src/Pngx/Register_Post_Type.php:111 src/Pngx/Register_Post_Type.php:112 -#: src/Pngx/Register_Post_Type.php:151 src/Pngx/Register_Taxonomy.php:30 -#: src/Pngx/Register_Taxonomy.php:31 src/Pngx/Register_Taxonomy.php:40 -#, php-format -msgid "%s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:113 -msgid "Add New" -msgstr "Adicionar Novo" - -#: src/Pngx/Register_Post_Type.php:114 src/Pngx/Register_Taxonomy.php:38 -#, php-format -msgid "Add New %s" -msgstr "Adicionar Novo %s" - -#: src/Pngx/Register_Post_Type.php:115 src/Pngx/Register_Taxonomy.php:36 -#, php-format -msgid "Edit %s" -msgstr "Editar %s" - -#: src/Pngx/Register_Post_Type.php:116 -#, php-format -msgid "New %s" -msgstr "Novo %s" - -#: src/Pngx/Register_Post_Type.php:117 -#, php-format -msgid "View %s" -msgstr "e expira em %s" - -#: src/Pngx/Register_Post_Type.php:118 src/Pngx/Register_Taxonomy.php:32 -#, php-format -msgid "Search %s" -msgstr "Buscar %s" - -#: src/Pngx/Register_Post_Type.php:119 -#, php-format -msgid "No %s found" -msgstr "Nenhum %s encontrado" - -#: src/Pngx/Register_Post_Type.php:120 -#, php-format -msgid "No %s found in Trash" -msgstr "Licença expirou em %s" - -#: src/Pngx/Register_Post_Type.php:121 src/Pngx/Register_Taxonomy.php:34 -#, php-format -msgid "Parent %s" -msgstr "Matriz %s" - -#: src/Pngx/Register_Post_Type.php:122 src/Pngx/Register_Taxonomy.php:33 -#, php-format -msgid "All %s" -msgstr "e expira em %s" - -#: src/Pngx/Register_Post_Type.php:123 src/Pngx/Register_Taxonomy.php:37 -#, php-format -msgid "Update %s" -msgstr "Atualizar %s" - -#: src/Pngx/Register_Post_Type.php:124 -#, php-format -msgid "%s Archives" -msgstr "Licença expirou em %s" - -#: src/Pngx/Register_Post_Type.php:125 -#, php-format -msgid "Insert into %s" -msgstr "Inserir %s" - -#: src/Pngx/Register_Post_Type.php:126 -#, php-format -msgid "Uploaded to this %s" -msgstr "Licença expirou em %s" - -#: src/Pngx/Register_Post_Type.php:127 -#, php-format -msgid "%s list" -msgstr "Licença expirou em %s" - -#: src/Pngx/Register_Post_Type.php:128 -#, php-format -msgid "%s list navigation" -msgstr "Licença expirou em %s" - -#: src/Pngx/Register_Post_Type.php:129 -#, php-format -msgid "Filter %s list" -msgstr "Lista de filtros de %s" - -#: src/Pngx/Register_Post_Type.php:152 -#, php-format -msgid "Creates a %s Custom Post Type" -msgstr "Cria um tipo de Post personalizado de %s" - -#: src/Pngx/Register_Taxonomy.php:35 -#, php-format -msgid "Parent %s:" -msgstr "Matriz %s:" - -#: src/Pngx/Register_Taxonomy.php:39 -#, php-format -msgid "New %s Name" -msgstr "Novo %s Nome" - -#: src/Pngx/Register_Taxonomy.php:41 -#, php-format -msgid "Popular %s" -msgstr "Licença expirou em %s" - -#: src/Pngx/Register_Taxonomy.php:42 -#, php-format -msgid "Separate %s with commas" -msgstr "Separar %s por vírgulas" - -#: src/Pngx/Register_Taxonomy.php:43 -#, php-format -msgid "Add or remove %s" -msgstr "Adicionar ou remover %s" - -#: src/Pngx/Register_Taxonomy.php:44 -#, php-format -msgid "Choose from the most used %s" -msgstr "Escolher entre os mais utilizados %s" - -#. Plugin Name of the plugin/theme -msgid "Plugin Engine" -msgstr "Plugin Engine" - -#. Description of the plugin/theme -msgid "A plugin framework to be embeded in the core plugin" -msgstr "Um quadro de plugin para ser embeded no núcleo plugin" - -#. Author of the plugin/theme -msgid "Jessee Productions, LLC" -msgstr "Jessee Productions, LLC" - -#. Author URI of the plugin/theme -msgid "https://jesseeproductions.com/" -msgstr "https://jesseeproductions.com/" +msgid "" +msgstr "" +"Project-Id-Version: Plugin Engine\n" +"POT-Creation-Date: 2018-04-20 15:57-0400\n" +"PO-Revision-Date: 2018-04-20 15:57-0400\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.8.12\n" +"X-Poedit-Basepath: ..\n" +"X-Poedit-WPHeader: pngx-common.php\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" +"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" +"_nx_noop:3c,1,2;__ngettext_noop:1,2\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPathExcluded-0: *.js\n" +"X-Poedit-SearchPathExcluded-1: .git\n" +"X-Poedit-SearchPathExcluded-2: vendor\n" +"X-Poedit-SearchPathExcluded-3: node_modules\n" +"X-Poedit-SearchPathExcluded-4: languages\n" +"X-Poedit-SearchPathExcluded-5: src/resources\n" + +#: src/Pngx/Admin/Ajax.php:35 +msgid "A Permission Error has occurred. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:40 src/Pngx/Admin/Ajax.php:128 +#: src/Pngx/Admin/Ajax.php:133 src/Pngx/Admin/Ajax.php:229 +#: src/Pngx/Admin/Ajax.php:234 +msgid "Permission Error has occurred. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:44 +msgid "No Template ID. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:137 src/Pngx/Admin/Ajax.php:238 +msgid "No Field ID. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:141 +msgid "No Option ID. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:246 +msgid "No Section Number Provided." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:250 +msgid "No Column Number Provided." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:263 +msgid "No Field Exists." +msgstr "" + +#: src/Pngx/Admin/Assets.php:130 src/Pngx/Admin/Support.php:28 +msgid "Copy to clipboard" +msgstr "" + +#: src/Pngx/Admin/Assets.php:131 +msgid "System info copied" +msgstr "" + +#: src/Pngx/Admin/Assets.php:132 +msgid "Press \"Cmd + C\" to copy" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:208 +msgid "Incorrect Permissions!" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:212 +msgid "No Data!" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:218 +msgid "Missing Required Fields" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:222 +msgid "Incorrect Capabilities!" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:319 src/Pngx/Admin/EDD_License.php:441 +msgid "An error occurred, please try again." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:324 +msgid "License status has not changed with the license server." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:380 +#: src/Pngx/Admin/Field/License_Status.php:35 +#: src/Pngx/Admin/Plugin_License_List.php:127 +#, php-format +msgid " and Expires on %s" +msgstr "e expira em %s" + +#: src/Pngx/Admin/EDD_License.php:384 +msgid "License Saved and Valid" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:387 +#: src/Pngx/Admin/Field/License_Status.php:43 +#: src/Pngx/Admin/Plugin_License_List.php:194 +msgid "License is Active" +msgstr "A Chave de Licença está Ativa." + +#: src/Pngx/Admin/EDD_License.php:418 +msgid "License Deactivated" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:420 +msgid "Click Activate License to enable automatic updates." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:426 +msgid "" +"License Deactivated locally, it could not be deactivated with the server due " +"to:" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:451 +#: src/Pngx/Admin/Field/License_Status.php:54 +#: src/Pngx/Admin/Plugin_License_List.php:205 +#, php-format +msgid "License Expired on %s" +msgstr "Licença expirou em %s" + +#: src/Pngx/Admin/EDD_License.php:456 +msgid "Your license key has been disabled." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:461 +msgid "Invalid license." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:466 +msgid "Your license is invalid." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:471 +msgid "Your license is not active for this URL." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:476 +#, php-format +msgid "This appears to be for another plugin and invalid license key for %s." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:481 +msgid "Your license key has reached its activation limit." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:486 +msgid "" +"Your license cannot be activated or deactivated, please confirm in your " +"accoint it is active." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:495 +#: src/Pngx/Admin/Field/License_Status.php:56 +#: src/Pngx/Admin/Plugin_License_List.php:207 +msgid "License is Not Active" +msgstr "Licença não está ativa" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:201 +#, php-format +msgid "" +"There is a new version of %1$s available. %2$sView version %3$s details%4$s." +msgstr "" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:209 +#, php-format +msgid "" +"There is a new version of %1$s available. %2$sView version %3$s details%4$s " +"or %5$supdate now%6$s." +msgstr "" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:399 +msgid "You do not have permission to install plugin updates" +msgstr "" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:399 +msgid "Error" +msgstr "" + +#: src/Pngx/Admin/Field/Date.php:42 +msgid "Today's Date is " +msgstr "Data de hoje é" + +#: src/Pngx/Admin/Field/Icon.php:43 +#, php-format +msgctxt "Icon Popup Header" +msgid "%1s - %2s" +msgstr "" + +#: src/Pngx/Admin/Field/Icon.php:49 +#, php-format +msgctxt "Icon Popup Footer" +msgid "%1s - %2s of %3s" +msgstr "" + +#: src/Pngx/Admin/Field/Icon.php:50 +msgid "Search..." +msgstr "" + +#: src/Pngx/Admin/Field/License_Status.php:47 +#: src/Pngx/Admin/Plugin_License_List.php:189 +msgid "Deactivate License" +msgstr "Desativar licença" + +#: src/Pngx/Admin/Field/License_Status.php:52 +#: src/Pngx/Admin/Plugin_License_List.php:203 +msgid "License is Invalid" +msgstr "Esta licença não é válida" + +#: src/Pngx/Admin/Field/License_Status.php:63 +#: src/Pngx/Admin/Plugin_License_List.php:220 +msgid "Activate License" +msgstr "Ativar a Licença" + +#: src/Pngx/Admin/Help.php:122 +msgid "Video Guides" +msgstr "Guias de vídeo" + +#: src/Pngx/Admin/Help.php:137 +msgid "Guides" +msgstr "Guias" + +#: src/Pngx/Admin/Meta.php:57 +#, php-format +msgid "" +"There maybe a javascript conflict preventing some features from working. Please check this guide to narrow down the " +"cause." +msgstr "" +"Há talvez um conflito de javascript, impedindo que alguns recursos " +"funcionem Por favor, verifique este guia " +"para diminuir a causa." + +#: src/Pngx/Admin/Meta.php:106 +msgid "Content" +msgstr "Conteudo" + +#: src/Pngx/Admin/Options.php:345 +msgid "Save Changes" +msgstr "Salvar alerações" + +#: src/Pngx/Admin/Plugin_License_List.php:34 +msgid "Please deactivate the license key to deactivate this plugin" +msgstr "" + +#: src/Pngx/Admin/Plugin_License_List.php:100 +msgid "Enter License Key" +msgstr "" + +#: src/Pngx/Admin/Plugin_License_List.php:106 +msgid "License Key" +msgstr "" + +#: src/Pngx/Admin/Style/Linked.php:24 +msgid "Field Styles" +msgstr "" + +#: src/Pngx/Admin/Support.php:139 +msgid "English" +msgstr "" + +#: src/Pngx/Admin/Support.php:177 src/Pngx/Admin/Support.php:179 +msgid "Unknown or not set" +msgstr "" + +#: src/Pngx/Admin/Support.php:568 +msgid "Unknown" +msgstr "" + +#: src/Pngx/Admin/Support.php:594 +msgid "Not Found" +msgstr "" + +#: src/Pngx/Cron_20.php:35 +msgid "Once Every 20 Mins" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:55 +#, php-format +msgid "%s updated. View %s" +msgstr "%s atualizado. Veja %s" + +#: src/Pngx/Register_Post_Type.php:56 +msgid "Custom field updated." +msgstr "Cor do campo de oferta" + +#: src/Pngx/Register_Post_Type.php:57 +msgid "Custom field deleted." +msgstr "Campo personalizado deletado." + +#: src/Pngx/Register_Post_Type.php:58 +#, php-format +msgid "%s updated." +msgstr "e expira em %s" + +#: src/Pngx/Register_Post_Type.php:59 +#, php-format +msgid "%s restored to revision from %s" +msgstr "%s restaurado da revisão de %s" + +#: src/Pngx/Register_Post_Type.php:60 +#, php-format +msgid "%s published. View %s" +msgstr "%s publicado. Ver %s " + +#: src/Pngx/Register_Post_Type.php:61 +#, php-format +msgid "%s saved." +msgstr "Licença expirou em %s" + +#: src/Pngx/Register_Post_Type.php:62 +#, php-format +msgid "%s submitted. Preview %s" +msgstr "%s enviado. Pré-visualizar %s" + +#: src/Pngx/Register_Post_Type.php:63 +#, php-format +msgid "" +"%s scheduled for: %1$s. Preview %s" +msgstr "" +"%s agendado para: %1$s. Pré-visualizar " + +#: src/Pngx/Register_Post_Type.php:63 +msgid "M j, Y @ G:i" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:64 +#, php-format +msgid "%s draft updated. Preview %s" +msgstr "" +"Rascunho de %s atualizado. Pré-" +"visualizar %s " + +#: src/Pngx/Register_Post_Type.php:109 src/Pngx/Register_Post_Type.php:110 +#: src/Pngx/Register_Post_Type.php:111 src/Pngx/Register_Post_Type.php:112 +#: src/Pngx/Register_Post_Type.php:151 src/Pngx/Register_Taxonomy.php:30 +#: src/Pngx/Register_Taxonomy.php:31 src/Pngx/Register_Taxonomy.php:40 +#, php-format +msgid "%s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:113 +msgid "Add New" +msgstr "Adicionar Novo" + +#: src/Pngx/Register_Post_Type.php:114 src/Pngx/Register_Taxonomy.php:38 +#, php-format +msgid "Add New %s" +msgstr "Adicionar Novo %s" + +#: src/Pngx/Register_Post_Type.php:115 src/Pngx/Register_Taxonomy.php:36 +#, php-format +msgid "Edit %s" +msgstr "Editar %s" + +#: src/Pngx/Register_Post_Type.php:116 +#, php-format +msgid "New %s" +msgstr "Novo %s" + +#: src/Pngx/Register_Post_Type.php:117 +#, php-format +msgid "View %s" +msgstr "e expira em %s" + +#: src/Pngx/Register_Post_Type.php:118 src/Pngx/Register_Taxonomy.php:32 +#, php-format +msgid "Search %s" +msgstr "Buscar %s" + +#: src/Pngx/Register_Post_Type.php:119 +#, php-format +msgid "No %s found" +msgstr "Nenhum %s encontrado" + +#: src/Pngx/Register_Post_Type.php:120 +#, php-format +msgid "No %s found in Trash" +msgstr "Licença expirou em %s" + +#: src/Pngx/Register_Post_Type.php:121 src/Pngx/Register_Taxonomy.php:34 +#, php-format +msgid "Parent %s" +msgstr "Matriz %s" + +#: src/Pngx/Register_Post_Type.php:122 src/Pngx/Register_Taxonomy.php:33 +#, php-format +msgid "All %s" +msgstr "e expira em %s" + +#: src/Pngx/Register_Post_Type.php:123 src/Pngx/Register_Taxonomy.php:37 +#, php-format +msgid "Update %s" +msgstr "Atualizar %s" + +#: src/Pngx/Register_Post_Type.php:124 +#, php-format +msgid "%s Archives" +msgstr "Licença expirou em %s" + +#: src/Pngx/Register_Post_Type.php:125 +#, php-format +msgid "Insert into %s" +msgstr "Inserir %s" + +#: src/Pngx/Register_Post_Type.php:126 +#, php-format +msgid "Uploaded to this %s" +msgstr "Licença expirou em %s" + +#: src/Pngx/Register_Post_Type.php:127 +#, php-format +msgid "%s list" +msgstr "Licença expirou em %s" + +#: src/Pngx/Register_Post_Type.php:128 +#, php-format +msgid "%s list navigation" +msgstr "Licença expirou em %s" + +#: src/Pngx/Register_Post_Type.php:129 +#, php-format +msgid "Filter %s list" +msgstr "Lista de filtros de %s" + +#: src/Pngx/Register_Post_Type.php:152 +#, php-format +msgid "Creates a %s Custom Post Type" +msgstr "Cria um tipo de Post personalizado de %s" + +#: src/Pngx/Register_Taxonomy.php:35 +#, php-format +msgid "Parent %s:" +msgstr "Matriz %s:" + +#: src/Pngx/Register_Taxonomy.php:39 +#, php-format +msgid "New %s Name" +msgstr "Novo %s Nome" + +#: src/Pngx/Register_Taxonomy.php:41 +#, php-format +msgid "Popular %s" +msgstr "Licença expirou em %s" + +#: src/Pngx/Register_Taxonomy.php:42 +#, php-format +msgid "Separate %s with commas" +msgstr "Separar %s por vírgulas" + +#: src/Pngx/Register_Taxonomy.php:43 +#, php-format +msgid "Add or remove %s" +msgstr "Adicionar ou remover %s" + +#: src/Pngx/Register_Taxonomy.php:44 +#, php-format +msgid "Choose from the most used %s" +msgstr "Escolher entre os mais utilizados %s" + +#. Plugin Name of the plugin/theme +msgid "Plugin Engine" +msgstr "Plugin Engine" + +#. Description of the plugin/theme +msgid "A plugin framework to be embeded in the core plugin" +msgstr "Um quadro de plugin para ser embeded no núcleo plugin" + +#. Author of the plugin/theme +msgid "Jessee Productions, LLC" +msgstr "Jessee Productions, LLC" + +#. Author URI of the plugin/theme +msgid "https://jesseeproductions.com/" +msgstr "https://jesseeproductions.com/" diff --git a/languages/plugin-engine.pot b/languages/plugin-engine.pot index d643d06..fd9c801 100644 --- a/languages/plugin-engine.pot +++ b/languages/plugin-engine.pot @@ -1,533 +1,533 @@ -#, fuzzy -msgid "" -msgstr "" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -"Project-Id-Version: Plugin Engine\n" -"POT-Creation-Date: 2020-08-11 07:21-0400\n" -"PO-Revision-Date: 2016-08-29 11:16-0400\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.1\n" -"X-Poedit-Basepath: ..\n" -"X-Poedit-WPHeader: pngx-common.php\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" -"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" -"_nx_noop:3c,1,2;__ngettext_noop:1,2\n" -"X-Poedit-SearchPath-0: .\n" -"X-Poedit-SearchPathExcluded-0: *.js\n" -"X-Poedit-SearchPathExcluded-1: .git\n" -"X-Poedit-SearchPathExcluded-2: vendor\n" -"X-Poedit-SearchPathExcluded-3: node_modules\n" -"X-Poedit-SearchPathExcluded-4: languages\n" -"X-Poedit-SearchPathExcluded-5: src/resources\n" - -#: src/Pngx/Admin/Ajax.php:35 -msgid "A Permission Error has occurred. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:40 src/Pngx/Admin/Ajax.php:128 -#: src/Pngx/Admin/Ajax.php:133 src/Pngx/Admin/Ajax.php:229 -#: src/Pngx/Admin/Ajax.php:234 -msgid "Permission Error has occurred. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:44 -msgid "No Template ID. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:137 src/Pngx/Admin/Ajax.php:238 -msgid "No Field ID. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:141 -msgid "No Option ID. Please save, reload, and try again." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:246 -msgid "No Section Number Provided." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:250 -msgid "No Column Number Provided." -msgstr "" - -#: src/Pngx/Admin/Ajax.php:263 -msgid "No Field Exists." -msgstr "" - -#: src/Pngx/Admin/Assets.php:130 src/Pngx/Admin/Support.php:28 -msgid "Copy to clipboard" -msgstr "" - -#: src/Pngx/Admin/Assets.php:131 -msgid "System info copied" -msgstr "" - -#: src/Pngx/Admin/Assets.php:132 -msgid "Press \"Cmd + C\" to copy" -msgstr "" - -#: src/Pngx/Admin/Assets.php:155 -msgid "Clear" -msgstr "" - -#: src/Pngx/Admin/Assets.php:156 -msgid "Clear color" -msgstr "" - -#: src/Pngx/Admin/Assets.php:157 -msgid "Default" -msgstr "" - -#: src/Pngx/Admin/Assets.php:158 -msgid "Select default color" -msgstr "" - -#: src/Pngx/Admin/Assets.php:159 -msgid "Select Color" -msgstr "" - -#: src/Pngx/Admin/Assets.php:160 -msgid "Color value" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:208 -msgid "Incorrect Permissions!" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:212 -msgid "No Data!" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:218 -msgid "Missing Required Fields" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:222 -msgid "Incorrect Capabilities!" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:319 src/Pngx/Admin/EDD_License.php:441 -msgid "An error occurred, please try again." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:324 -msgid "License status has not changed with the license server." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:380 -#: src/Pngx/Admin/Field/License_Status.php:35 -#: src/Pngx/Admin/Plugin_License_List.php:127 -#, php-format -msgid " and Expires on %s" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:384 -msgid "License Saved and Valid" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:387 -#: src/Pngx/Admin/Field/License_Status.php:43 -#: src/Pngx/Admin/Plugin_License_List.php:194 -msgid "License is Active" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:418 -msgid "License Deactivated" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:420 -msgid "Click Activate License to enable automatic updates." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:426 -msgid "" -"License Deactivated locally, it could not be deactivated with the server due " -"to:" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:451 -#: src/Pngx/Admin/Field/License_Status.php:67 -#: src/Pngx/Admin/Plugin_License_List.php:205 -#, php-format -msgid "License Expired on %s" -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:456 -msgid "Your license key has been disabled." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:461 -msgid "Invalid license." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:466 -msgid "Your license is invalid." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:471 -msgid "Your license is not active for this URL." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:476 -#, php-format -msgid "This appears to be for another plugin and invalid license key for %s." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:481 -msgid "Your license key has reached its activation limit." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:486 -msgid "" -"Your license cannot be activated or deactivated, please confirm in your " -"accoint it is active." -msgstr "" - -#: src/Pngx/Admin/EDD_License.php:495 -#: src/Pngx/Admin/Field/License_Status.php:69 -#: src/Pngx/Admin/Plugin_License_List.php:207 -msgid "License is Not Active" -msgstr "" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:210 -#, php-format -msgid "" -"There is a new version of %1$s available. %2$sView version %3$s details%4$s." -msgstr "" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:218 -#, php-format -msgid "" -"There is a new version of %1$s available. %2$sView version %3$s details%4$s " -"or %5$supdate now%6$s." -msgstr "" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:408 -msgid "You do not have permission to install plugin updates" -msgstr "" - -#: src/Pngx/Admin/EDD_Plugin_Updater.php:408 -msgid "Error" -msgstr "" - -#: src/Pngx/Admin/Field/Date.php:42 -msgid "Today's Date is " -msgstr "" - -#: src/Pngx/Admin/Field/Icon.php:43 -#, php-format -msgctxt "Icon Popup Header" -msgid "%1s - %2s" -msgstr "" - -#: src/Pngx/Admin/Field/Icon.php:49 -#, php-format -msgctxt "Icon Popup Footer" -msgid "%1s - %2s of %3s" -msgstr "" - -#: src/Pngx/Admin/Field/Icon.php:50 -msgid "Search..." -msgstr "" - -#: src/Pngx/Admin/Field/License_Status.php:47 -#: src/Pngx/Admin/Plugin_License_List.php:189 -msgid "Deactivate License" -msgstr "" - -#: src/Pngx/Admin/Field/License_Status.php:59 -#: src/Pngx/Admin/Plugin_License_List.php:203 -msgid "License is Invalid" -msgstr "" - -#: src/Pngx/Admin/Field/License_Status.php:76 -#: src/Pngx/Admin/Plugin_License_List.php:220 -msgid "Activate License" -msgstr "" - -#: src/Pngx/Admin/Help.php:122 -msgid "Video Guides" -msgstr "" - -#: src/Pngx/Admin/Help.php:137 -msgid "Guides" -msgstr "" - -#: src/Pngx/Admin/Meta.php:57 -#, php-format -msgid "" -"There maybe a javascript conflict preventing some features from working. Please check this guide to narrow down the " -"cause." -msgstr "" - -#: src/Pngx/Admin/Meta.php:106 -msgid "Content" -msgstr "" - -#: src/Pngx/Admin/Notice/Plugin_Download.php:105 -#, php-format -msgid "" -"To begin using %2$s, please install and activate at least the following " -"version(s) of %3$s." -msgstr "" - -#: src/Pngx/Admin/Notice/Plugin_Download.php:121 -msgctxt "separator used in a list of items" -msgid ", " -msgstr "" - -#: src/Pngx/Admin/Notice/Plugin_Download.php:122 -msgctxt "the final separator in a list of two or more items" -msgid " and " -msgstr "" - -#: src/Pngx/Admin/Options.php:345 -msgid "Save Changes" -msgstr "" - -#: src/Pngx/Admin/Plugin_License_List.php:34 -msgid "Please deactivate the license key to deactivate this plugin" -msgstr "" - -#: src/Pngx/Admin/Plugin_License_List.php:100 -msgid "Enter License Key" -msgstr "" - -#: src/Pngx/Admin/Plugin_License_List.php:106 -msgid "License Key" -msgstr "" - -#: src/Pngx/Admin/Style/Linked.php:24 -msgid "Field Styles" -msgstr "" - -#: src/Pngx/Admin/Support.php:139 -msgid "English" -msgstr "" - -#: src/Pngx/Admin/Support.php:177 src/Pngx/Admin/Support.php:179 -msgid "Unknown or not set" -msgstr "" - -#: src/Pngx/Admin/Support.php:568 -msgid "Unknown" -msgstr "" - -#: src/Pngx/Admin/Support.php:594 -msgid "Not Found" -msgstr "" - -#: src/Pngx/Blocks/Abstract.php:105 -msgid "Problem loading the block, please remove this block to restart." -msgstr "" - -#: src/Pngx/Cron_20.php:35 -msgid "Once Every 20 Mins" -msgstr "" - -#: src/Pngx/Editor.php:103 -msgid "Add Description..." -msgstr "" - -#: src/Pngx/Register_Post_Type.php:55 -#, php-format -msgid "%s updated. View %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:56 -msgid "Custom field updated." -msgstr "" - -#: src/Pngx/Register_Post_Type.php:57 -msgid "Custom field deleted." -msgstr "" - -#: src/Pngx/Register_Post_Type.php:58 -#, php-format -msgid "%s updated." -msgstr "" - -#: src/Pngx/Register_Post_Type.php:59 -#, php-format -msgid "%s restored to revision from %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:60 -#, php-format -msgid "%s published. View %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:61 -#, php-format -msgid "%s saved." -msgstr "" - -#: src/Pngx/Register_Post_Type.php:62 -#, php-format -msgid "%s submitted. Preview %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:63 -#, php-format -msgid "" -"%s scheduled for: %1$s. Preview %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:63 -msgid "M j, Y @ G:i" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:64 -#, php-format -msgid "%s draft updated. Preview %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:109 src/Pngx/Register_Post_Type.php:110 -#: src/Pngx/Register_Post_Type.php:111 src/Pngx/Register_Post_Type.php:112 -#: src/Pngx/Register_Post_Type.php:151 src/Pngx/Register_Taxonomy.php:30 -#: src/Pngx/Register_Taxonomy.php:31 src/Pngx/Register_Taxonomy.php:40 -#, php-format -msgid "%s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:113 -msgid "Add New" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:114 src/Pngx/Register_Taxonomy.php:38 -#, php-format -msgid "Add New %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:115 src/Pngx/Register_Taxonomy.php:36 -#, php-format -msgid "Edit %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:116 -#, php-format -msgid "New %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:117 -#, php-format -msgid "View %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:118 src/Pngx/Register_Taxonomy.php:32 -#, php-format -msgid "Search %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:119 -#, php-format -msgid "No %s found" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:120 -#, php-format -msgid "No %s found in Trash" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:121 src/Pngx/Register_Taxonomy.php:34 -#, php-format -msgid "Parent %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:122 src/Pngx/Register_Taxonomy.php:33 -#, php-format -msgid "All %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:123 src/Pngx/Register_Taxonomy.php:37 -#, php-format -msgid "Update %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:124 -#, php-format -msgid "%s Archives" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:125 -#, php-format -msgid "Insert into %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:126 -#, php-format -msgid "Uploaded to this %s" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:127 -#, php-format -msgid "%s list" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:128 -#, php-format -msgid "%s list navigation" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:129 -#, php-format -msgid "Filter %s list" -msgstr "" - -#: src/Pngx/Register_Post_Type.php:152 -#, php-format -msgid "Creates a %s Custom Post Type" -msgstr "" - -#: src/Pngx/Register_Taxonomy.php:35 -#, php-format -msgid "Parent %s:" -msgstr "" - -#: src/Pngx/Register_Taxonomy.php:39 -#, php-format -msgid "New %s Name" -msgstr "" - -#: src/Pngx/Register_Taxonomy.php:41 -#, php-format -msgid "Popular %s" -msgstr "" - -#: src/Pngx/Register_Taxonomy.php:42 -#, php-format -msgid "Separate %s with commas" -msgstr "" - -#: src/Pngx/Register_Taxonomy.php:43 -#, php-format -msgid "Add or remove %s" -msgstr "" - -#: src/Pngx/Register_Taxonomy.php:44 -#, php-format -msgid "Choose from the most used %s" -msgstr "" - -#. Plugin Name of the plugin/theme -msgid "Plugin Engine" -msgstr "" - -#. Description of the plugin/theme -msgid "A plugin framework to be embeded in the core plugin" -msgstr "" - -#. Author of the plugin/theme -msgid "Jessee Productions, LLC" -msgstr "" - -#. Author URI of the plugin/theme -msgid "https://jesseeproductions.com/" -msgstr "" +#, fuzzy +msgid "" +msgstr "" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +"Project-Id-Version: Plugin Engine\n" +"POT-Creation-Date: 2020-08-11 07:21-0400\n" +"PO-Revision-Date: 2016-08-29 11:16-0400\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.1\n" +"X-Poedit-Basepath: ..\n" +"X-Poedit-WPHeader: pngx-common.php\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" +"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" +"_nx_noop:3c,1,2;__ngettext_noop:1,2\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPathExcluded-0: *.js\n" +"X-Poedit-SearchPathExcluded-1: .git\n" +"X-Poedit-SearchPathExcluded-2: vendor\n" +"X-Poedit-SearchPathExcluded-3: node_modules\n" +"X-Poedit-SearchPathExcluded-4: languages\n" +"X-Poedit-SearchPathExcluded-5: src/resources\n" + +#: src/Pngx/Admin/Ajax.php:35 +msgid "A Permission Error has occurred. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:40 src/Pngx/Admin/Ajax.php:128 +#: src/Pngx/Admin/Ajax.php:133 src/Pngx/Admin/Ajax.php:229 +#: src/Pngx/Admin/Ajax.php:234 +msgid "Permission Error has occurred. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:44 +msgid "No Template ID. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:137 src/Pngx/Admin/Ajax.php:238 +msgid "No Field ID. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:141 +msgid "No Option ID. Please save, reload, and try again." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:246 +msgid "No Section Number Provided." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:250 +msgid "No Column Number Provided." +msgstr "" + +#: src/Pngx/Admin/Ajax.php:263 +msgid "No Field Exists." +msgstr "" + +#: src/Pngx/Admin/Assets.php:130 src/Pngx/Admin/Support.php:28 +msgid "Copy to clipboard" +msgstr "" + +#: src/Pngx/Admin/Assets.php:131 +msgid "System info copied" +msgstr "" + +#: src/Pngx/Admin/Assets.php:132 +msgid "Press \"Cmd + C\" to copy" +msgstr "" + +#: src/Pngx/Admin/Assets.php:155 +msgid "Clear" +msgstr "" + +#: src/Pngx/Admin/Assets.php:156 +msgid "Clear color" +msgstr "" + +#: src/Pngx/Admin/Assets.php:157 +msgid "Default" +msgstr "" + +#: src/Pngx/Admin/Assets.php:158 +msgid "Select default color" +msgstr "" + +#: src/Pngx/Admin/Assets.php:159 +msgid "Select Color" +msgstr "" + +#: src/Pngx/Admin/Assets.php:160 +msgid "Color value" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:208 +msgid "Incorrect Permissions!" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:212 +msgid "No Data!" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:218 +msgid "Missing Required Fields" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:222 +msgid "Incorrect Capabilities!" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:319 src/Pngx/Admin/EDD_License.php:441 +msgid "An error occurred, please try again." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:324 +msgid "License status has not changed with the license server." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:380 +#: src/Pngx/Admin/Field/License_Status.php:35 +#: src/Pngx/Admin/Plugin_License_List.php:127 +#, php-format +msgid " and Expires on %s" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:384 +msgid "License Saved and Valid" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:387 +#: src/Pngx/Admin/Field/License_Status.php:43 +#: src/Pngx/Admin/Plugin_License_List.php:194 +msgid "License is Active" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:418 +msgid "License Deactivated" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:420 +msgid "Click Activate License to enable automatic updates." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:426 +msgid "" +"License Deactivated locally, it could not be deactivated with the server due " +"to:" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:451 +#: src/Pngx/Admin/Field/License_Status.php:67 +#: src/Pngx/Admin/Plugin_License_List.php:205 +#, php-format +msgid "License Expired on %s" +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:456 +msgid "Your license key has been disabled." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:461 +msgid "Invalid license." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:466 +msgid "Your license is invalid." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:471 +msgid "Your license is not active for this URL." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:476 +#, php-format +msgid "This appears to be for another plugin and invalid license key for %s." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:481 +msgid "Your license key has reached its activation limit." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:486 +msgid "" +"Your license cannot be activated or deactivated, please confirm in your " +"accoint it is active." +msgstr "" + +#: src/Pngx/Admin/EDD_License.php:495 +#: src/Pngx/Admin/Field/License_Status.php:69 +#: src/Pngx/Admin/Plugin_License_List.php:207 +msgid "License is Not Active" +msgstr "" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:210 +#, php-format +msgid "" +"There is a new version of %1$s available. %2$sView version %3$s details%4$s." +msgstr "" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:218 +#, php-format +msgid "" +"There is a new version of %1$s available. %2$sView version %3$s details%4$s " +"or %5$supdate now%6$s." +msgstr "" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:408 +msgid "You do not have permission to install plugin updates" +msgstr "" + +#: src/Pngx/Admin/EDD_Plugin_Updater.php:408 +msgid "Error" +msgstr "" + +#: src/Pngx/Admin/Field/Date.php:42 +msgid "Today's Date is " +msgstr "" + +#: src/Pngx/Admin/Field/Icon.php:43 +#, php-format +msgctxt "Icon Popup Header" +msgid "%1s - %2s" +msgstr "" + +#: src/Pngx/Admin/Field/Icon.php:49 +#, php-format +msgctxt "Icon Popup Footer" +msgid "%1s - %2s of %3s" +msgstr "" + +#: src/Pngx/Admin/Field/Icon.php:50 +msgid "Search..." +msgstr "" + +#: src/Pngx/Admin/Field/License_Status.php:47 +#: src/Pngx/Admin/Plugin_License_List.php:189 +msgid "Deactivate License" +msgstr "" + +#: src/Pngx/Admin/Field/License_Status.php:59 +#: src/Pngx/Admin/Plugin_License_List.php:203 +msgid "License is Invalid" +msgstr "" + +#: src/Pngx/Admin/Field/License_Status.php:76 +#: src/Pngx/Admin/Plugin_License_List.php:220 +msgid "Activate License" +msgstr "" + +#: src/Pngx/Admin/Help.php:122 +msgid "Video Guides" +msgstr "" + +#: src/Pngx/Admin/Help.php:137 +msgid "Guides" +msgstr "" + +#: src/Pngx/Admin/Meta.php:57 +#, php-format +msgid "" +"There maybe a javascript conflict preventing some features from working. Please check this guide to narrow down the " +"cause." +msgstr "" + +#: src/Pngx/Admin/Meta.php:106 +msgid "Content" +msgstr "" + +#: src/Pngx/Admin/Notice/Plugin_Download.php:105 +#, php-format +msgid "" +"To begin using %2$s, please install and activate at least the following " +"version(s) of %3$s." +msgstr "" + +#: src/Pngx/Admin/Notice/Plugin_Download.php:121 +msgctxt "separator used in a list of items" +msgid ", " +msgstr "" + +#: src/Pngx/Admin/Notice/Plugin_Download.php:122 +msgctxt "the final separator in a list of two or more items" +msgid " and " +msgstr "" + +#: src/Pngx/Admin/Options.php:345 +msgid "Save Changes" +msgstr "" + +#: src/Pngx/Admin/Plugin_License_List.php:34 +msgid "Please deactivate the license key to deactivate this plugin" +msgstr "" + +#: src/Pngx/Admin/Plugin_License_List.php:100 +msgid "Enter License Key" +msgstr "" + +#: src/Pngx/Admin/Plugin_License_List.php:106 +msgid "License Key" +msgstr "" + +#: src/Pngx/Admin/Style/Linked.php:24 +msgid "Field Styles" +msgstr "" + +#: src/Pngx/Admin/Support.php:139 +msgid "English" +msgstr "" + +#: src/Pngx/Admin/Support.php:177 src/Pngx/Admin/Support.php:179 +msgid "Unknown or not set" +msgstr "" + +#: src/Pngx/Admin/Support.php:568 +msgid "Unknown" +msgstr "" + +#: src/Pngx/Admin/Support.php:594 +msgid "Not Found" +msgstr "" + +#: src/Pngx/Blocks/Abstract.php:105 +msgid "Problem loading the block, please remove this block to restart." +msgstr "" + +#: src/Pngx/Cron_20.php:35 +msgid "Once Every 20 Mins" +msgstr "" + +#: src/Pngx/Editor.php:103 +msgid "Add Description..." +msgstr "" + +#: src/Pngx/Register_Post_Type.php:55 +#, php-format +msgid "%s updated. View %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:56 +msgid "Custom field updated." +msgstr "" + +#: src/Pngx/Register_Post_Type.php:57 +msgid "Custom field deleted." +msgstr "" + +#: src/Pngx/Register_Post_Type.php:58 +#, php-format +msgid "%s updated." +msgstr "" + +#: src/Pngx/Register_Post_Type.php:59 +#, php-format +msgid "%s restored to revision from %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:60 +#, php-format +msgid "%s published. View %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:61 +#, php-format +msgid "%s saved." +msgstr "" + +#: src/Pngx/Register_Post_Type.php:62 +#, php-format +msgid "%s submitted. Preview %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:63 +#, php-format +msgid "" +"%s scheduled for: %1$s. Preview %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:63 +msgid "M j, Y @ G:i" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:64 +#, php-format +msgid "%s draft updated. Preview %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:109 src/Pngx/Register_Post_Type.php:110 +#: src/Pngx/Register_Post_Type.php:111 src/Pngx/Register_Post_Type.php:112 +#: src/Pngx/Register_Post_Type.php:151 src/Pngx/Register_Taxonomy.php:30 +#: src/Pngx/Register_Taxonomy.php:31 src/Pngx/Register_Taxonomy.php:40 +#, php-format +msgid "%s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:113 +msgid "Add New" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:114 src/Pngx/Register_Taxonomy.php:38 +#, php-format +msgid "Add New %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:115 src/Pngx/Register_Taxonomy.php:36 +#, php-format +msgid "Edit %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:116 +#, php-format +msgid "New %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:117 +#, php-format +msgid "View %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:118 src/Pngx/Register_Taxonomy.php:32 +#, php-format +msgid "Search %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:119 +#, php-format +msgid "No %s found" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:120 +#, php-format +msgid "No %s found in Trash" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:121 src/Pngx/Register_Taxonomy.php:34 +#, php-format +msgid "Parent %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:122 src/Pngx/Register_Taxonomy.php:33 +#, php-format +msgid "All %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:123 src/Pngx/Register_Taxonomy.php:37 +#, php-format +msgid "Update %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:124 +#, php-format +msgid "%s Archives" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:125 +#, php-format +msgid "Insert into %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:126 +#, php-format +msgid "Uploaded to this %s" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:127 +#, php-format +msgid "%s list" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:128 +#, php-format +msgid "%s list navigation" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:129 +#, php-format +msgid "Filter %s list" +msgstr "" + +#: src/Pngx/Register_Post_Type.php:152 +#, php-format +msgid "Creates a %s Custom Post Type" +msgstr "" + +#: src/Pngx/Register_Taxonomy.php:35 +#, php-format +msgid "Parent %s:" +msgstr "" + +#: src/Pngx/Register_Taxonomy.php:39 +#, php-format +msgid "New %s Name" +msgstr "" + +#: src/Pngx/Register_Taxonomy.php:41 +#, php-format +msgid "Popular %s" +msgstr "" + +#: src/Pngx/Register_Taxonomy.php:42 +#, php-format +msgid "Separate %s with commas" +msgstr "" + +#: src/Pngx/Register_Taxonomy.php:43 +#, php-format +msgid "Add or remove %s" +msgstr "" + +#: src/Pngx/Register_Taxonomy.php:44 +#, php-format +msgid "Choose from the most used %s" +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "Plugin Engine" +msgstr "" + +#. Description of the plugin/theme +msgid "A plugin framework to be embeded in the core plugin" +msgstr "" + +#. Author of the plugin/theme +msgid "Jessee Productions, LLC" +msgstr "" + +#. Author URI of the plugin/theme +msgid "https://jesseeproductions.com/" +msgstr "" diff --git a/package.json b/package.json index dbdb86b..d5ecc46 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "plugin-engine", - "version": "3.1.0", + "version": "3.2.1", "repository": "git@github.com:jesseeproductions/plugin-engine.git", "_resourcepath": "src/resources", "_domainPath": "languages", diff --git a/pngx-common.php b/pngx-common.php index f72402d..73b9e4a 100644 --- a/pngx-common.php +++ b/pngx-common.php @@ -2,7 +2,7 @@ /* Plugin Name: Plugin Engine Description: A plugin framework to be embeded in the core plugin -Version: 3.1 +Version: 3.2.1 Author: Jessee Productions, LLC Author URI: https://jesseeproductions.com/ Text Domain: plugin-engine diff --git a/readme.txt b/readme.txt index 1a714c3..19f7ed6 100644 --- a/readme.txt +++ b/readme.txt @@ -1,6 +1,18 @@ === Plugin Engine === == Changelog == += 3.2.1 January 14th, 2021 = + +* Fix - Change duplicate feature's meta field copy to improve security. +* Fix - Fatal error that can happen in the admin on newer versions of WordPress. + += 3.2 March 8th, 2021 = + +* Fix - Updates to support jQuery change in WordPress 5.7. + += 3.1.1 August 25th, 2020 = + +* Fix - Modify the security check on saving meta fields. = [3.1.0] August 11th, 2020 = diff --git a/src/Pngx/Add_Capabilities.php b/src/Pngx/Add_Capabilities.php index a6f4f6c..77d31f3 100644 --- a/src/Pngx/Add_Capabilities.php +++ b/src/Pngx/Add_Capabilities.php @@ -1,112 +1,112 @@ -name ); - } - - if ( ! empty( $role_check ) ) { - foreach ( $caps[ $role->name ] as $cap ) { - $role->add_cap( $cap ); - } - } - } - - //Set Option to Prevent this from Running Again - update_option( $capability_type . '_capabilities_register', date( 'l jS \of F Y h:i:s A' ) ); - - } - +name ); + } + + if ( ! empty( $role_check ) ) { + foreach ( $caps[ $role->name ] as $cap ) { + $role->add_cap( $cap ); + } + } + } + + //Set Option to Prevent this from Running Again + update_option( $capability_type . '_capabilities_register', date( 'l jS \of F Y h:i:s A' ) ); + + } + } \ No newline at end of file diff --git a/src/Pngx/Admin/Ajax.php b/src/Pngx/Admin/Ajax.php index 11d6f87..4cfc661 100644 --- a/src/Pngx/Admin/Ajax.php +++ b/src/Pngx/Admin/Ajax.php @@ -1,287 +1,287 @@ -start(); - - } - - protected function start() { - - add_action( 'wp_ajax_pngx_templates', array( $this, 'load_templates' ) ); - - add_action( 'wp_ajax_pngx_variety', array( $this, 'load_variety' ) ); - - add_action( 'wp_ajax_pngx_repeatable', array( $this, 'load_repeatable' ) ); - - } - - public function load_templates() { - - // End if not the correct action - if ( ! isset( $_POST['action'] ) || 'pngx_templates' !== $_POST['action'] ) { - wp_send_json_error( __( 'A Permission Error has occurred. Please save, reload, and try again.', 'plugin-engine' ) ); - } - - // End if not correct nonce - if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'pngx_admin_' . $_POST['post_id'] ) ) { - wp_send_json_error( __( 'Permission Error has occurred. Please save, reload, and try again.', 'plugin-engine' ) ); - } - - if ( ! isset( $_POST['option'] ) ) { - wp_send_json_error( __( 'No Template ID. Please save, reload, and try again.', 'plugin-engine' ) ); - } - - Pngx__Main::instance()->doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; - - ob_start(); - - /** - * Filter to Add All Fields for a Plugin - */ - $fields = apply_filters( 'pngx_meta_fields', array() ); - - foreach ( $fields as $field ) { - - $field_template = isset( $field['template'] ) ? $field['template'] : array(); - - if ( $field['type'] && in_array( $_POST['option'], $field_template ) ) { - - // get value of this field if it exists for this post - $meta = get_post_meta( $_POST['post_id'], $field['id'], true ); - - //Wrap Class for Conditionals - $wrapclass = isset( $field['wrapclass'] ) ? $field['wrapclass'] : ''; - - if ( 'wrap-start' === $field['type'] ) { - ?> -
- ' . esc_html( $field['desc'] ) . ''; - } - - // Display admin linked style fields - Pngx__Admin__Style__Linked::display_styles( $fields, $field, $_POST['post_id'] ); - ?> -
- - -
> - -
- - - - - - - -
- - -
- - doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; - - ob_start(); - - /** - * Filter to Add All Fields for a Plugin - */ - $fields = apply_filters( 'pngx_meta_fields', array() ); - - if ( isset( $fields[ $_POST['field'] ]['variety_choices'][ $_POST['option'] ] ) ) { - foreach ( $fields[ $_POST['field'] ]['variety_choices'][ $_POST['option'] ] as $label ) { - - if ( is_array( $label ) && isset( $label['open'] ) ) { - ?> -
- - - - - -
- -
- - - -
- doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; - - ob_start(); - - /** - * Filter to Add All Fields for a Plugin - */ - $fields = apply_filters( 'pngx_meta_fields', array() ); - - if ( ! isset( $fields[ $_POST['field'] ] ) ) { - wp_send_json_error( __( 'No Field Exists.', 'plugin-engine' ) ); - } - - $field = $fields[ $_POST['field'] ]; - - //foreach ( $fields as $field ) { - - if ( ! isset( $repeat_obj ) ) { - $repeat_obj = new Pngx__Repeater__Main( $_POST['name_id'], false, absint( $_POST['section'] ), absint( $_POST['column'] ) ); - } - - Pngx__Admin__Field__Repeatable::display_repeat_fields( $field['repeatable_fields'], $field, null, $repeat_obj, null ); - - //} - //} // end foreach fields - - $template_fields = ob_get_contents(); - - ob_end_clean(); - - wp_send_json_success( json_encode( $template_fields ) ); - - } - +start(); + + } + + protected function start() { + + add_action( 'wp_ajax_pngx_templates', array( $this, 'load_templates' ) ); + + add_action( 'wp_ajax_pngx_variety', array( $this, 'load_variety' ) ); + + add_action( 'wp_ajax_pngx_repeatable', array( $this, 'load_repeatable' ) ); + + } + + public function load_templates() { + + // End if not the correct action + if ( ! isset( $_POST['action'] ) || 'pngx_templates' !== $_POST['action'] ) { + wp_send_json_error( __( 'A Permission Error has occurred. Please save, reload, and try again.', 'plugin-engine' ) ); + } + + // End if not correct nonce + if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'pngx_admin_' . $_POST['post_id'] ) ) { + wp_send_json_error( __( 'Permission Error has occurred. Please save, reload, and try again.', 'plugin-engine' ) ); + } + + if ( ! isset( $_POST['option'] ) ) { + wp_send_json_error( __( 'No Template ID. Please save, reload, and try again.', 'plugin-engine' ) ); + } + + Pngx__Main::instance()->doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; + + ob_start(); + + /** + * Filter to Add All Fields for a Plugin + */ + $fields = apply_filters( 'pngx_meta_fields', array() ); + + foreach ( $fields as $field ) { + + $field_template = isset( $field['template'] ) ? $field['template'] : array(); + + if ( $field['type'] && in_array( $_POST['option'], $field_template ) ) { + + // get value of this field if it exists for this post + $meta = get_post_meta( $_POST['post_id'], $field['id'], true ); + + //Wrap Class for Conditionals + $wrapclass = isset( $field['wrapclass'] ) ? $field['wrapclass'] : ''; + + if ( 'wrap-start' === $field['type'] ) { + ?> +
+ ' . esc_html( $field['desc'] ) . ''; + } + + // Display admin linked style fields + Pngx__Admin__Style__Linked::display_styles( $fields, $field, $_POST['post_id'] ); + ?> +
+ + +
> + +
+ + + + + + + +
+ + +
+ + doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; + + ob_start(); + + /** + * Filter to Add All Fields for a Plugin + */ + $fields = apply_filters( 'pngx_meta_fields', array() ); + + if ( isset( $fields[ $_POST['field'] ]['variety_choices'][ $_POST['option'] ] ) ) { + foreach ( $fields[ $_POST['field'] ]['variety_choices'][ $_POST['option'] ] as $label ) { + + if ( is_array( $label ) && isset( $label['open'] ) ) { + ?> +
+ + + + + +
+ +
+ + + +
+ doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; + + ob_start(); + + /** + * Filter to Add All Fields for a Plugin + */ + $fields = apply_filters( 'pngx_meta_fields', array() ); + + if ( ! isset( $fields[ $_POST['field'] ] ) ) { + wp_send_json_error( __( 'No Field Exists.', 'plugin-engine' ) ); + } + + $field = $fields[ $_POST['field'] ]; + + //foreach ( $fields as $field ) { + + if ( ! isset( $repeat_obj ) ) { + $repeat_obj = new Pngx__Repeater__Main( $_POST['name_id'], false, absint( $_POST['section'] ), absint( $_POST['column'] ) ); + } + + Pngx__Admin__Field__Repeatable::display_repeat_fields( $field['repeatable_fields'], $field, null, $repeat_obj, null ); + + //} + //} // end foreach fields + + $template_fields = ob_get_contents(); + + ob_end_clean(); + + wp_send_json_success( json_encode( $template_fields ) ); + + } + } \ No newline at end of file diff --git a/src/Pngx/Admin/Assets.php b/src/Pngx/Admin/Assets.php index 201fcb2..496663a 100644 --- a/src/Pngx/Admin/Assets.php +++ b/src/Pngx/Admin/Assets.php @@ -147,7 +147,7 @@ public function register_assets() { * @since 3.1 */ if ( version_compare( $wp_version, '5.4.99', '>=' ) ) { -\ + wp_localize_script( 'wp-color-picker', 'wpColorPickerL10n', diff --git a/src/Pngx/Admin/EDD_Plugin_Updater.php b/src/Pngx/Admin/EDD_Plugin_Updater.php index b230656..9e7e041 100644 --- a/src/Pngx/Admin/EDD_Plugin_Updater.php +++ b/src/Pngx/Admin/EDD_Plugin_Updater.php @@ -1,500 +1,500 @@ -api_url = trailingslashit( $_api_url ); - $this->api_data = $_api_data; - $this->name = plugin_basename( $_plugin_file ); - $this->slug = basename( $_plugin_file, '.php' ); - $this->version = $_api_data['version']; - $this->wp_override = isset( $_api_data['wp_override'] ) ? (bool) $_api_data['wp_override'] : false; - $this->beta = ! empty( $this->api_data['beta'] ) ? true : false; - $this->cache_key = 'edd_sl_' . md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) ); - - $edd_plugin_data[ $this->slug ] = $this->api_data; - - /** - * Fires after the $edd_plugin_data is setup. - * - * @since 3.0 - * - * @param array $edd_plugin_data Array of EDD SL plugin data. - */ - do_action( 'post_edd_sl_plugin_updater_setup', $edd_plugin_data ); - - // Set up hooks. - $this->init(); - - } - - /** - * Set up WordPress filters to hook into WP's update process. - * - * @uses add_filter() - * - * @return void - */ - public function init() { - - add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) ); - add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 ); - remove_action( 'after_plugin_row_' . $this->name, 'wp_plugin_update_row', 10 ); - add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 ); - add_action( 'admin_init', array( $this, 'show_changelog' ) ); - - } - - /** - * Check for Updates at the defined API endpoint and modify the update array. - * - * This function dives into the update API just when WordPress creates its update array, - * then adds a custom API call and injects the custom plugin data retrieved from the API. - * It is reassembled from parts of the native WordPress plugin update code. - * See wp-includes/update.php line 121 for the original wp_update_plugins() function. - * - * @uses api_request() - * - * @param array $_transient_data Update array build by WordPress. - * @return array Modified update array with custom plugin data. - */ - public function check_update( $_transient_data ) { - - global $pagenow; - - if ( ! is_object( $_transient_data ) ) { - $_transient_data = new stdClass; - } - - if ( 'plugins.php' == $pagenow && is_multisite() ) { - return $_transient_data; - } - - if ( ! empty( $_transient_data->response ) && ! empty( $_transient_data->response[ $this->name ] ) && false === $this->wp_override ) { - return $_transient_data; - } - - $version_info = $this->get_cached_version_info(); - - if ( false === $version_info ) { - $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) ); - - $this->set_version_info_cache( $version_info ); - - } - - if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) { - - if ( version_compare( $this->version, $version_info->new_version, '<' ) ) { - - $_transient_data->response[ $this->name ] = $version_info; - - } - - $_transient_data->last_checked = time(); - $_transient_data->checked[ $this->name ] = $this->version; - - } - - return $_transient_data; - } - - /** - * show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise! - * - * @param string $file - * @param array $plugin - */ - public function show_update_notification( $file, $plugin ) { - - if ( is_network_admin() ) { - return; - } - - if( ! current_user_can( 'update_plugins' ) ) { - return; - } - - if( ! is_multisite() ) { - return; - } - - if ( $this->name != $file ) { - return; - } - - // Remove our filter on the site transient - remove_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ), 10 ); - - $update_cache = get_site_transient( 'update_plugins' ); - - $update_cache = is_object( $update_cache ) ? $update_cache : new stdClass(); - - if ( empty( $update_cache->response ) || empty( $update_cache->response[ $this->name ] ) ) { - - $version_info = $this->get_cached_version_info(); - - if ( false === $version_info ) { - $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) ); - - $this->set_version_info_cache( $version_info ); - } - - if ( ! is_object( $version_info ) ) { - return; - } - - if ( version_compare( $this->version, $version_info->new_version, '<' ) ) { - - $update_cache->response[ $this->name ] = $version_info; - - } - - $update_cache->last_checked = time(); - $update_cache->checked[ $this->name ] = $this->version; - - set_site_transient( 'update_plugins', $update_cache ); - - } else { - - $version_info = $update_cache->response[ $this->name ]; - - } - - // Restore our filter - add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) ); - - if ( ! empty( $update_cache->response[ $this->name ] ) && version_compare( $this->version, $version_info->new_version, '<' ) ) { - - // build a plugin list row, with update notification - $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' ); - # - echo ''; - echo ''; - echo '
'; - - $changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' ); - - if ( empty( $version_info->download_link ) ) { - printf( - __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s.', 'easy-digital-downloads' ), - esc_html( $version_info->name ), - '', - esc_html( $version_info->new_version ), - '' - ); - } else { - printf( - __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s or %5$supdate now%6$s.', 'easy-digital-downloads' ), - esc_html( $version_info->name ), - '', - esc_html( $version_info->new_version ), - '', - '', - '' - ); - } - - do_action( "in_plugin_update_message-{$file}", $plugin, $version_info ); - - echo '
'; - } - } - - /** - * Updates information on the "View version x.x details" page with custom data. - * - * @uses api_request() - * - * @param mixed $_data - * @param string $_action - * @param object $_args - * @return object $_data - */ - public function plugins_api_filter( $_data, $_action = '', $_args = null ) { - - if ( $_action != 'plugin_information' ) { - - return $_data; - - } - - if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) { - - return $_data; - - } - - $to_send = array( - 'slug' => $this->slug, - 'is_ssl' => is_ssl(), - 'fields' => array( - 'banners' => array(), - 'reviews' => false - ) - ); - - $cache_key = 'edd_api_request_' . md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) ); - - // Get the transient where we store the api request for this plugin for 24 hours - $edd_api_request_transient = $this->get_cached_version_info( $cache_key ); - - //If we have no transient-saved value, run the API, set a fresh transient with the API value, and return that value too right now. - if ( empty( $edd_api_request_transient ) ) { - - $api_response = $this->api_request( 'plugin_information', $to_send ); - - // Expires in 3 hours - $this->set_version_info_cache( $api_response, $cache_key ); - - if ( false !== $api_response ) { - $_data = $api_response; - } - - } else { - $_data = $edd_api_request_transient; - } - - // Convert sections into an associative array, since we're getting an object, but Core expects an array. - if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) { - $new_sections = array(); - foreach ( $_data->sections as $key => $value ) { - $new_sections[ $key ] = $value; - } - - $_data->sections = $new_sections; - } - - // Convert banners into an associative array, since we're getting an object, but Core expects an array. - if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) { - $new_banners = array(); - foreach ( $_data->banners as $key => $value ) { - $new_banners[ $key ] = $value; - } - - $_data->banners = $new_banners; - } - - return $_data; - } - - /** - * Disable SSL verification in order to prevent download update failures - * - * @param array $args - * @param string $url - * @return object $array - */ - public function http_request_args( $args, $url ) { - - $verify_ssl = $this->verify_ssl(); - if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) { - $args['sslverify'] = $verify_ssl; - } - return $args; - - } - - /** - * Calls the API and, if successfull, returns the object delivered by the API. - * - * @uses get_bloginfo() - * @uses wp_remote_post() - * @uses is_wp_error() - * - * @param string $_action The requested action. - * @param array $_data Parameters for the API action. - * @return false|object - */ - private function api_request( $_action, $_data ) { - - global $wp_version; - - $data = array_merge( $this->api_data, $_data ); - - if ( $data['slug'] != $this->slug ) { - return; - } - - if( $this->api_url == trailingslashit (home_url() ) ) { - return false; // Don't allow a plugin to ping itself - } - - $api_params = array( - 'edd_action' => 'get_version', - 'license' => ! empty( $data['license'] ) ? $data['license'] : '', - 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false, - 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false, - 'version' => isset( $data['version'] ) ? $data['version'] : false, - 'slug' => $data['slug'], - 'author' => $data['author'], - 'url' => home_url(), - 'beta' => ! empty( $data['beta'] ), - ); - - $verify_ssl = $this->verify_ssl(); - $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) ); - - if ( ! is_wp_error( $request ) ) { - $request = json_decode( wp_remote_retrieve_body( $request ) ); - } - - if ( $request && isset( $request->sections ) ) { - $request->sections = maybe_unserialize( $request->sections ); - } else { - $request = false; - } - - if ( $request && isset( $request->banners ) ) { - $request->banners = maybe_unserialize( $request->banners ); - } - - if( ! empty( $request->sections ) ) { - foreach( $request->sections as $key => $section ) { - $request->$key = (array) $section; - } - } - - return $request; - } - - public function show_changelog() { - - global $edd_plugin_data; - - if( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' != $_REQUEST['edd_sl_action'] ) { - return; - } - - if( empty( $_REQUEST['plugin'] ) ) { - return; - } - - if( empty( $_REQUEST['slug'] ) ) { - return; - } - - if( ! current_user_can( 'update_plugins' ) ) { - wp_die( __( 'You do not have permission to install plugin updates', 'easy-digital-downloads' ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 403 ) ); - } - - $data = $edd_plugin_data[ $_REQUEST['slug'] ]; - $beta = ! empty( $data['beta'] ) ? true : false; - $cache_key = md5( 'edd_plugin_' . sanitize_key( $_REQUEST['plugin'] ) . '_' . $beta . '_version_info' ); - $version_info = $this->get_cached_version_info( $cache_key ); - - if( false === $version_info ) { - - $api_params = array( - 'edd_action' => 'get_version', - 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false, - 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false, - 'slug' => $_REQUEST['slug'], - 'author' => $data['author'], - 'url' => home_url(), - 'beta' => ! empty( $data['beta'] ) - ); - - $verify_ssl = $this->verify_ssl(); - $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) ); - - if ( ! is_wp_error( $request ) ) { - $version_info = json_decode( wp_remote_retrieve_body( $request ) ); - } - - - if ( ! empty( $version_info ) && isset( $version_info->sections ) ) { - $version_info->sections = maybe_unserialize( $version_info->sections ); - } else { - $version_info = false; - } - - if( ! empty( $version_info ) ) { - foreach( $version_info->sections as $key => $section ) { - $version_info->$key = (array) $section; - } - } - - $this->set_version_info_cache( $version_info, $cache_key ); - - } - - if( ! empty( $version_info ) && isset( $version_info->sections['changelog'] ) ) { - echo '
' . $version_info->sections['changelog'] . '
'; - } - - exit; - } - - public function get_cached_version_info( $cache_key = '' ) { - - if( empty( $cache_key ) ) { - $cache_key = $this->cache_key; - } - - $cache = get_option( $cache_key ); - - if( empty( $cache['timeout'] ) || time() > $cache['timeout'] ) { - return false; // Cache is expired - } - - return json_decode( $cache['value'] ); - - } - - public function set_version_info_cache( $value = '', $cache_key = '' ) { - - if( empty( $cache_key ) ) { - $cache_key = $this->cache_key; - } - - $data = array( - 'timeout' => strtotime( '+3 hours', time() ), - 'value' => json_encode( $value ) - ); - - update_option( $cache_key, $data, 'no' ); - - } - - /** - * Returns if the SSL of the store should be verified. - * - * @since 1.6.13 - * @return bool - */ - private function verify_ssl() { - return (bool) apply_filters( 'edd_sl_api_request_verify_ssl', true, $this ); - } - +api_url = trailingslashit( $_api_url ); + $this->api_data = $_api_data; + $this->name = plugin_basename( $_plugin_file ); + $this->slug = basename( $_plugin_file, '.php' ); + $this->version = $_api_data['version']; + $this->wp_override = isset( $_api_data['wp_override'] ) ? (bool) $_api_data['wp_override'] : false; + $this->beta = ! empty( $this->api_data['beta'] ) ? true : false; + $this->cache_key = 'edd_sl_' . md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) ); + + $edd_plugin_data[ $this->slug ] = $this->api_data; + + /** + * Fires after the $edd_plugin_data is setup. + * + * @since 3.0 + * + * @param array $edd_plugin_data Array of EDD SL plugin data. + */ + do_action( 'post_edd_sl_plugin_updater_setup', $edd_plugin_data ); + + // Set up hooks. + $this->init(); + + } + + /** + * Set up WordPress filters to hook into WP's update process. + * + * @uses add_filter() + * + * @return void + */ + public function init() { + + add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) ); + add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 ); + remove_action( 'after_plugin_row_' . $this->name, 'wp_plugin_update_row', 10 ); + add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 ); + add_action( 'admin_init', array( $this, 'show_changelog' ) ); + + } + + /** + * Check for Updates at the defined API endpoint and modify the update array. + * + * This function dives into the update API just when WordPress creates its update array, + * then adds a custom API call and injects the custom plugin data retrieved from the API. + * It is reassembled from parts of the native WordPress plugin update code. + * See wp-includes/update.php line 121 for the original wp_update_plugins() function. + * + * @uses api_request() + * + * @param array $_transient_data Update array build by WordPress. + * @return array Modified update array with custom plugin data. + */ + public function check_update( $_transient_data ) { + + global $pagenow; + + if ( ! is_object( $_transient_data ) ) { + $_transient_data = new stdClass; + } + + if ( 'plugins.php' == $pagenow && is_multisite() ) { + return $_transient_data; + } + + if ( ! empty( $_transient_data->response ) && ! empty( $_transient_data->response[ $this->name ] ) && false === $this->wp_override ) { + return $_transient_data; + } + + $version_info = $this->get_cached_version_info(); + + if ( false === $version_info ) { + $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) ); + + $this->set_version_info_cache( $version_info ); + + } + + if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) { + + if ( version_compare( $this->version, $version_info->new_version, '<' ) ) { + + $_transient_data->response[ $this->name ] = $version_info; + + } + + $_transient_data->last_checked = time(); + $_transient_data->checked[ $this->name ] = $this->version; + + } + + return $_transient_data; + } + + /** + * show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise! + * + * @param string $file + * @param array $plugin + */ + public function show_update_notification( $file, $plugin ) { + + if ( is_network_admin() ) { + return; + } + + if( ! current_user_can( 'update_plugins' ) ) { + return; + } + + if( ! is_multisite() ) { + return; + } + + if ( $this->name != $file ) { + return; + } + + // Remove our filter on the site transient + remove_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ), 10 ); + + $update_cache = get_site_transient( 'update_plugins' ); + + $update_cache = is_object( $update_cache ) ? $update_cache : new stdClass(); + + if ( empty( $update_cache->response ) || empty( $update_cache->response[ $this->name ] ) ) { + + $version_info = $this->get_cached_version_info(); + + if ( false === $version_info ) { + $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) ); + + $this->set_version_info_cache( $version_info ); + } + + if ( ! is_object( $version_info ) ) { + return; + } + + if ( version_compare( $this->version, $version_info->new_version, '<' ) ) { + + $update_cache->response[ $this->name ] = $version_info; + + } + + $update_cache->last_checked = time(); + $update_cache->checked[ $this->name ] = $this->version; + + set_site_transient( 'update_plugins', $update_cache ); + + } else { + + $version_info = $update_cache->response[ $this->name ]; + + } + + // Restore our filter + add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) ); + + if ( ! empty( $update_cache->response[ $this->name ] ) && version_compare( $this->version, $version_info->new_version, '<' ) ) { + + // build a plugin list row, with update notification + $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' ); + # + echo ''; + echo ''; + echo '
'; + + $changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' ); + + if ( empty( $version_info->download_link ) ) { + printf( + __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s.', 'easy-digital-downloads' ), + esc_html( $version_info->name ), + '', + esc_html( $version_info->new_version ), + '' + ); + } else { + printf( + __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s or %5$supdate now%6$s.', 'easy-digital-downloads' ), + esc_html( $version_info->name ), + '', + esc_html( $version_info->new_version ), + '', + '', + '' + ); + } + + do_action( "in_plugin_update_message-{$file}", $plugin, $version_info ); + + echo '
'; + } + } + + /** + * Updates information on the "View version x.x details" page with custom data. + * + * @uses api_request() + * + * @param mixed $_data + * @param string $_action + * @param object $_args + * @return object $_data + */ + public function plugins_api_filter( $_data, $_action = '', $_args = null ) { + + if ( $_action != 'plugin_information' ) { + + return $_data; + + } + + if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) { + + return $_data; + + } + + $to_send = array( + 'slug' => $this->slug, + 'is_ssl' => is_ssl(), + 'fields' => array( + 'banners' => array(), + 'reviews' => false + ) + ); + + $cache_key = 'edd_api_request_' . md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) ); + + // Get the transient where we store the api request for this plugin for 24 hours + $edd_api_request_transient = $this->get_cached_version_info( $cache_key ); + + //If we have no transient-saved value, run the API, set a fresh transient with the API value, and return that value too right now. + if ( empty( $edd_api_request_transient ) ) { + + $api_response = $this->api_request( 'plugin_information', $to_send ); + + // Expires in 3 hours + $this->set_version_info_cache( $api_response, $cache_key ); + + if ( false !== $api_response ) { + $_data = $api_response; + } + + } else { + $_data = $edd_api_request_transient; + } + + // Convert sections into an associative array, since we're getting an object, but Core expects an array. + if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) { + $new_sections = array(); + foreach ( $_data->sections as $key => $value ) { + $new_sections[ $key ] = $value; + } + + $_data->sections = $new_sections; + } + + // Convert banners into an associative array, since we're getting an object, but Core expects an array. + if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) { + $new_banners = array(); + foreach ( $_data->banners as $key => $value ) { + $new_banners[ $key ] = $value; + } + + $_data->banners = $new_banners; + } + + return $_data; + } + + /** + * Disable SSL verification in order to prevent download update failures + * + * @param array $args + * @param string $url + * @return object $array + */ + public function http_request_args( $args, $url ) { + + $verify_ssl = $this->verify_ssl(); + if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) { + $args['sslverify'] = $verify_ssl; + } + return $args; + + } + + /** + * Calls the API and, if successfull, returns the object delivered by the API. + * + * @uses get_bloginfo() + * @uses wp_remote_post() + * @uses is_wp_error() + * + * @param string $_action The requested action. + * @param array $_data Parameters for the API action. + * @return false|object + */ + private function api_request( $_action, $_data ) { + + global $wp_version; + + $data = array_merge( $this->api_data, $_data ); + + if ( $data['slug'] != $this->slug ) { + return; + } + + if( $this->api_url == trailingslashit (home_url() ) ) { + return false; // Don't allow a plugin to ping itself + } + + $api_params = array( + 'edd_action' => 'get_version', + 'license' => ! empty( $data['license'] ) ? $data['license'] : '', + 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false, + 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false, + 'version' => isset( $data['version'] ) ? $data['version'] : false, + 'slug' => $data['slug'], + 'author' => $data['author'], + 'url' => home_url(), + 'beta' => ! empty( $data['beta'] ), + ); + + $verify_ssl = $this->verify_ssl(); + $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) ); + + if ( ! is_wp_error( $request ) ) { + $request = json_decode( wp_remote_retrieve_body( $request ) ); + } + + if ( $request && isset( $request->sections ) ) { + $request->sections = maybe_unserialize( $request->sections ); + } else { + $request = false; + } + + if ( $request && isset( $request->banners ) ) { + $request->banners = maybe_unserialize( $request->banners ); + } + + if( ! empty( $request->sections ) ) { + foreach( $request->sections as $key => $section ) { + $request->$key = (array) $section; + } + } + + return $request; + } + + public function show_changelog() { + + global $edd_plugin_data; + + if( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' != $_REQUEST['edd_sl_action'] ) { + return; + } + + if( empty( $_REQUEST['plugin'] ) ) { + return; + } + + if( empty( $_REQUEST['slug'] ) ) { + return; + } + + if( ! current_user_can( 'update_plugins' ) ) { + wp_die( __( 'You do not have permission to install plugin updates', 'easy-digital-downloads' ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 403 ) ); + } + + $data = $edd_plugin_data[ $_REQUEST['slug'] ]; + $beta = ! empty( $data['beta'] ) ? true : false; + $cache_key = md5( 'edd_plugin_' . sanitize_key( $_REQUEST['plugin'] ) . '_' . $beta . '_version_info' ); + $version_info = $this->get_cached_version_info( $cache_key ); + + if( false === $version_info ) { + + $api_params = array( + 'edd_action' => 'get_version', + 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false, + 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false, + 'slug' => $_REQUEST['slug'], + 'author' => $data['author'], + 'url' => home_url(), + 'beta' => ! empty( $data['beta'] ) + ); + + $verify_ssl = $this->verify_ssl(); + $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) ); + + if ( ! is_wp_error( $request ) ) { + $version_info = json_decode( wp_remote_retrieve_body( $request ) ); + } + + + if ( ! empty( $version_info ) && isset( $version_info->sections ) ) { + $version_info->sections = maybe_unserialize( $version_info->sections ); + } else { + $version_info = false; + } + + if( ! empty( $version_info ) ) { + foreach( $version_info->sections as $key => $section ) { + $version_info->$key = (array) $section; + } + } + + $this->set_version_info_cache( $version_info, $cache_key ); + + } + + if( ! empty( $version_info ) && isset( $version_info->sections['changelog'] ) ) { + echo '
' . $version_info->sections['changelog'] . '
'; + } + + exit; + } + + public function get_cached_version_info( $cache_key = '' ) { + + if( empty( $cache_key ) ) { + $cache_key = $this->cache_key; + } + + $cache = get_option( $cache_key ); + + if( empty( $cache['timeout'] ) || time() > $cache['timeout'] ) { + return false; // Cache is expired + } + + return json_decode( $cache['value'] ); + + } + + public function set_version_info_cache( $value = '', $cache_key = '' ) { + + if( empty( $cache_key ) ) { + $cache_key = $this->cache_key; + } + + $data = array( + 'timeout' => strtotime( '+3 hours', time() ), + 'value' => json_encode( $value ) + ); + + update_option( $cache_key, $data, 'no' ); + + } + + /** + * Returns if the SSL of the store should be verified. + * + * @since 1.6.13 + * @return bool + */ + private function verify_ssl() { + return (bool) apply_filters( 'edd_sl_api_request_verify_ssl', true, $this ); + } + } \ No newline at end of file diff --git a/src/Pngx/Admin/Field/Checkbox.php b/src/Pngx/Admin/Field/Checkbox.php index 84ebd19..eaabab7 100644 --- a/src/Pngx/Admin/Field/Checkbox.php +++ b/src/Pngx/Admin/Field/Checkbox.php @@ -1,74 +1,74 @@ - - - - /> - - - - - - + + + /> + + + + + +
- -
- - -
- -
+ +
+ + +
+ + '; - - if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { - echo '' . esc_html( $field['desc'] ) . ''; - } - - if ( isset( $field['condition'] ) && 'show_current_date' == $field['condition'] ) { - - $date = Pngx__Date::display_date( $field['format'] ); - - if ( $date ) { - echo '' . esc_html__( 'Today\'s Date is ', 'plugin-engine' ) . esc_html( $date ) . ''; - } - - } - - - } - -} +'; + + if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { + echo '' . esc_html( $field['desc'] ) . ''; + } + + if ( isset( $field['condition'] ) && 'show_current_date' == $field['condition'] ) { + + $date = Pngx__Date::display_date( $field['format'] ); + + if ( $date ) { + echo '' . esc_html__( 'Today\'s Date is ', 'plugin-engine' ) . esc_html( $date ) . ''; + } + + } + + + } + +} diff --git a/src/Pngx/Admin/Field/Heading.php b/src/Pngx/Admin/Field/Heading.php index b07dc52..696e97c 100644 --- a/src/Pngx/Admin/Field/Heading.php +++ b/src/Pngx/Admin/Field/Heading.php @@ -1,31 +1,31 @@ -' . esc_html( $field['alert'] ) . ''; - } else { - echo '

' . esc_html( $field['desc'] ) . '

'; - } - } else { - echo '

' . esc_html( $field["desc"] ) . '

'; - } - - } - -} +' . esc_html( $field['alert'] ) . ''; + } else { + echo '

' . esc_html( $field['desc'] ) . '

'; + } + } else { + echo '

' . esc_html( $field["desc"] ) . '

'; + } + + } + +} diff --git a/src/Pngx/Admin/Field/Help.php b/src/Pngx/Admin/Field/Help.php index 9bb72c3..c8247f5 100644 --- a/src/Pngx/Admin/Field/Help.php +++ b/src/Pngx/Admin/Field/Help.php @@ -1,41 +1,41 @@ -display_help( 'all', false, 'pngx' ); - - //Return as this is only showing all the help documents - return; - } - - //Display Help Per Tab - $help_class = new Pngx__Admin__Help(); - $help_class->display_help( $tab, $screen_id, 'pngx' ); - - } - -} +display_help( 'all', false, 'pngx' ); + + //Return as this is only showing all the help documents + return; + } + + //Display Help Per Tab + $help_class = new Pngx__Admin__Help(); + $help_class->display_help( $tab, $screen_id, 'pngx' ); + + } + +} diff --git a/src/Pngx/Admin/Field/Hidden.php b/src/Pngx/Admin/Field/Hidden.php index 2e6afe9..9e64016 100644 --- a/src/Pngx/Admin/Field/Hidden.php +++ b/src/Pngx/Admin/Field/Hidden.php @@ -1,33 +1,33 @@ -'; - - } - -} +'; + + } + +} diff --git a/src/Pngx/Admin/Field/Icon.php b/src/Pngx/Admin/Field/Icon.php index 7f3318c..2adb520 100644 --- a/src/Pngx/Admin/Field/Icon.php +++ b/src/Pngx/Admin/Field/Icon.php @@ -1,62 +1,62 @@ - - - - - - + + + + + CCTOR_PRO_VERSION_NUM && ! $license ) { - if ( isset( $field['class'] ) && 'pro_license' == $field['class'] && ! strpos( $field['class'], 'cctor_' ) ) { - $license = $field['class']; - $license = 'cctor_' . $license; - } - } - - $license_info = get_option( $license ); - $value = isset( $license_info['key'] ) ? $license_info['key'] : ''; - - $size = isset( $field['size'] ) ? $field['size'] : 30; - $class = isset( $field['class'] ) ? $field['class'] : ''; - $std = isset( $field['std'] ) ? $field['std'] : ''; - - echo ''; - - if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { - echo '' . esc_html( $field['desc'] ) . ''; - } - } - - } - -} + CCTOR_PRO_VERSION_NUM && ! $license ) { + if ( isset( $field['class'] ) && 'pro_license' == $field['class'] && ! strpos( $field['class'], 'cctor_' ) ) { + $license = $field['class']; + $license = 'cctor_' . $license; + } + } + + $license_info = get_option( $license ); + $value = isset( $license_info['key'] ) ? $license_info['key'] : ''; + + $size = isset( $field['size'] ) ? $field['size'] : 30; + $class = isset( $field['class'] ) ? $field['class'] : ''; + $std = isset( $field['std'] ) ? $field['std'] : ''; + + echo ''; + + if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { + echo '' . esc_html( $field['desc'] ) . ''; + } + } + + } + +} diff --git a/src/Pngx/Admin/Field/List.php b/src/Pngx/Admin/Field/List.php index 9d6918c..55cea93 100644 --- a/src/Pngx/Admin/Field/List.php +++ b/src/Pngx/Admin/Field/List.php @@ -1,37 +1,37 @@ -'; - } - - echo ''; - - } - -} +'; + } + + echo ''; + + } + +} diff --git a/src/Pngx/Admin/Field/Message.php b/src/Pngx/Admin/Field/Message.php index 7f882c9..8581be6 100644 --- a/src/Pngx/Admin/Field/Message.php +++ b/src/Pngx/Admin/Field/Message.php @@ -1,25 +1,25 @@ -set_field_attributes( $field['field_attributes'] ); - - echo '
' . strip_tags( $field['desc'], apply_filters( 'cctor_filter_terms_tags', '' ) ) . '
'; - - } - -} +set_field_attributes( $field['field_attributes'] ); + + echo '
' . strip_tags( $field['desc'], apply_filters( 'cctor_filter_terms_tags', '' ) ) . '
'; + + } + +} diff --git a/src/Pngx/Admin/Field/Number.php b/src/Pngx/Admin/Field/Number.php index a242593..25255df 100644 --- a/src/Pngx/Admin/Field/Number.php +++ b/src/Pngx/Admin/Field/Number.php @@ -1,55 +1,55 @@ - ' . esc_attr( $numbertype ); - - if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { - echo '' . esc_html( $field['desc'] ) . ''; - } - } -} + ' . esc_attr( $numbertype ); + + if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { + echo '' . esc_html( $field['desc'] ) . ''; + } + } +} diff --git a/src/Pngx/Admin/Field/Radio.php b/src/Pngx/Admin/Field/Radio.php index 80af80d..4eb993a 100644 --- a/src/Pngx/Admin/Field/Radio.php +++ b/src/Pngx/Admin/Field/Radio.php @@ -1,56 +1,56 @@ - $label ) { - echo ' - '; - if ( $i < count( $options ) - 1 ) { - echo '
'; - } - $i ++; - } - - if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { - echo '' . esc_html( $field['desc'] ) . ''; - } - - - } - -} + $label ) { + echo ' + '; + if ( $i < count( $options ) - 1 ) { + echo '
'; + } + $i ++; + } + + if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { + echo '' . esc_html( $field['desc'] ) . ''; + } + + + } + +} diff --git a/src/Pngx/Admin/Field/Select.php b/src/Pngx/Admin/Field/Select.php index 19089c7..50dba9a 100644 --- a/src/Pngx/Admin/Field/Select.php +++ b/src/Pngx/Admin/Field/Select.php @@ -1,88 +1,88 @@ -get_field_name( $name ); - } - - ?> -
- -
- ' . esc_html( $field['desc'] ) . ''; - } - - } - -} +get_field_name( $name ); + } + + ?> +
+ +
+ ' . esc_html( $field['desc'] ) . ''; + } + + } + +} diff --git a/src/Pngx/Admin/Field/Template.php b/src/Pngx/Admin/Field/Template.php index 5f4c0ff..881b75c 100644 --- a/src/Pngx/Admin/Field/Template.php +++ b/src/Pngx/Admin/Field/Template.php @@ -1,35 +1,35 @@ - admin_url( 'admin-ajax.php', ( is_ssl() ? 'https' : 'http' ) ), - 'nonce' => wp_create_nonce( 'pngx_admin_' . $post->ID ), - 'post_id' => $post->ID - ) ); - - wp_localize_script( 'pngx-admin', 'pngx_admin_repeatable_ajax', array( - 'ajaxurl' => admin_url( 'admin-ajax.php', ( is_ssl() ? 'https' : 'http' ) ), - 'nonce' => wp_create_nonce( 'pngx_admin_rep_' . $post->ID ), - 'post_id' => $post->ID - ) ); - - } - + admin_url( 'admin-ajax.php', ( is_ssl() ? 'https' : 'http' ) ), + 'nonce' => wp_create_nonce( 'pngx_admin_' . $post->ID ), + 'post_id' => $post->ID + ) ); + + wp_localize_script( 'pngx-admin', 'pngx_admin_repeatable_ajax', array( + 'ajaxurl' => admin_url( 'admin-ajax.php', ( is_ssl() ? 'https' : 'http' ) ), + 'nonce' => wp_create_nonce( 'pngx_admin_rep_' . $post->ID ), + 'post_id' => $post->ID + ) ); + + } + } \ No newline at end of file diff --git a/src/Pngx/Admin/Field/Text.php b/src/Pngx/Admin/Field/Text.php index 25df7e9..627d73b 100644 --- a/src/Pngx/Admin/Field/Text.php +++ b/src/Pngx/Admin/Field/Text.php @@ -1,64 +1,64 @@ -set_field_attributes( $field['field_attributes'] ); - $bumpdown = empty( $field['bumpdown'] ) ? '' : Pngx__Admin__Field_Methods::instance()->set_bumpdown( $field['bumpdown'] ); - - if ( $repeat_obj ) { - $name = $repeat_obj->get_field_name( $name ); - } - - if ( isset( $field['alert'] ) && '' != $field['alert'] && 1 == $condition ) { - echo '
  ' . esc_html( $field['alert'] ) . '
'; - } - - echo ''; - - echo $bumpdown; - - if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { - echo '' . esc_html( $field['desc'] ) . ''; - } - - } - -} +set_field_attributes( $field['field_attributes'] ); + $bumpdown = empty( $field['bumpdown'] ) ? '' : Pngx__Admin__Field_Methods::instance()->set_bumpdown( $field['bumpdown'] ); + + if ( $repeat_obj ) { + $name = $repeat_obj->get_field_name( $name ); + } + + if ( isset( $field['alert'] ) && '' != $field['alert'] && 1 == $condition ) { + echo '
  ' . esc_html( $field['alert'] ) . '
'; + } + + echo ''; + + echo $bumpdown; + + if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { + echo '' . esc_html( $field['desc'] ) . ''; + } + + } + +} diff --git a/src/Pngx/Admin/Field/Textarea.php b/src/Pngx/Admin/Field/Textarea.php index 828eb7c..9d7609b 100644 --- a/src/Pngx/Admin/Field/Textarea.php +++ b/src/Pngx/Admin/Field/Textarea.php @@ -1,49 +1,49 @@ -get_current_sec_col() . '[]'; - } - - if ( version_compare( $wp_version, '4.3', '<' ) ) { - echo ''; - } else { - echo ''; - } - - if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { - echo '' . esc_html( $field['desc'] ) . ''; - } - - } - -} +get_current_sec_col() . '[]'; + } + + if ( version_compare( $wp_version, '4.3', '<' ) ) { + echo ''; + } else { + echo ''; + } + + if ( isset( $field['desc'] ) && ! empty( $field['desc'] ) ) { + echo '' . esc_html( $field['desc'] ) . ''; + } + + } + +} diff --git a/src/Pngx/Admin/Field/Variety.php b/src/Pngx/Admin/Field/Variety.php index f6d1282..adb0e42 100644 --- a/src/Pngx/Admin/Field/Variety.php +++ b/src/Pngx/Admin/Field/Variety.php @@ -1,178 +1,178 @@ -doing_ajax ) { - $selected = $field['value']; - } - - - if ( $meta ) { - $selected = $meta; - } elseif ( 'post-new.php' === $pagenow && isset( $field['value'] ) ) { - $selected = $field['value']; - } elseif ( Pngx__Main::instance()->doing_ajax ) { - $selected = $field['value']; - } - - $class = isset( $field['class'] ) ? $field['class'] : ''; - $repeating = isset( $field['repeating'] ) ? '[]' : ''; - $attributes = empty( $field['field_attributes'] ) ? '' : Pngx__Admin__Field_Methods::instance()->set_field_attributes( $field['field_attributes'] ); - $bumpdown = empty( $field['bumpdown'] ) ? '' : Pngx__Admin__Field_Methods::instance()->set_bumpdown( $field['bumpdown'] ); - - ?> -
-
- -
- - ' . esc_html( $field['desc'] ) . ''; - } - ?> -
-
- -
- - - - - -
- ID ) ? null : $post->ID; - } elseif ( Pngx__Main::instance()->doing_ajax && isset( $_POST['post_id'] ) ) { - $post_id = absint( $_POST['post_id'] ); - } - - $meta = empty( $post_id ) ? null : get_post_meta( $post_id, $label, true ); - ?> -
- - - -
- - -
- doing_ajax ) { + $selected = $field['value']; + } + + + if ( $meta ) { + $selected = $meta; + } elseif ( 'post-new.php' === $pagenow && isset( $field['value'] ) ) { + $selected = $field['value']; + } elseif ( Pngx__Main::instance()->doing_ajax ) { + $selected = $field['value']; + } + + $class = isset( $field['class'] ) ? $field['class'] : ''; + $repeating = isset( $field['repeating'] ) ? '[]' : ''; + $attributes = empty( $field['field_attributes'] ) ? '' : Pngx__Admin__Field_Methods::instance()->set_field_attributes( $field['field_attributes'] ); + $bumpdown = empty( $field['bumpdown'] ) ? '' : Pngx__Admin__Field_Methods::instance()->set_bumpdown( $field['bumpdown'] ); + + ?> +
+
+ +
+ + ' . esc_html( $field['desc'] ) . ''; + } + ?> +
+
+ +
+ + + + + +
+ ID ) ? null : $post->ID; + } elseif ( Pngx__Main::instance()->doing_ajax && isset( $_POST['post_id'] ) ) { + $post_id = absint( $_POST['post_id'] ); + } + + $meta = empty( $post_id ) ? null : get_post_meta( $post_id, $label, true ); + ?> +
+ + + +
+ + +
+ $post - ) ); - } - - wp_enqueue_script( 'tiny_mce' ); - - _WP_Editors::editor_settings( esc_attr( $field['id'] ), $set ); - - // Only Localize Script Once Per Page - if ( ! isset( $post->load_scripts ) ) { - - /** - * Filter Tiny MCE Buttons for PNGX Editor Script - * - * @param array() an array of attributes to create the button - * @param $post current post object - */ - $pngx_visual_editor_buttons = apply_filters( 'pngx_visual_editor_functions', array(), $post ); - - /** - * Filter HTML Editor Buttons for PNGX Editor Script - * - * @param array() an array of attributes to create the button - * @param $post current post object - */ - $pngx_html_editor_buttons = apply_filters( 'pngx_html_editor_functions', array(), $post ); - - /** - * Variables for WP Editor Script - */ - $pngx_editor_vars = array( - 'url' => get_home_url(), - 'includes_url' => includes_url(), - 'visual_editor_buttons' => $pngx_visual_editor_buttons, - 'html_editor_buttons' => $pngx_html_editor_buttons, - 'rich_editing' => get_user_meta( get_current_user_id(), 'rich_editing', true ), - ); - wp_localize_script( 'pngx-wp-editor', 'pngx_editor_vars', $pngx_editor_vars ); - - if ( is_object( $post ) ) { - $post->load_scripts = true; - } - } - - $std = isset( $field['std'] ) ? $field['std'] : ''; - $rows = isset( $field['rows'] ) ? $field['rows'] : 12; - $cols = isset( $field['cols'] ) ? $field['cols'] : 50; - $class = isset( $field['class'] ) ? $field['class'] : ''; - $repeating = isset( $field['repeating'] ) ? '[]' : ''; - - ?> - - - ' . esc_html( $field['desc'] ) . ''; - } - - } - -} + $post + ) ); + } + + wp_enqueue_script( 'tiny_mce' ); + + _WP_Editors::editor_settings( esc_attr( $field['id'] ), $set ); + + // Only Localize Script Once Per Page + if ( ! isset( $post->load_scripts ) ) { + + /** + * Filter Tiny MCE Buttons for PNGX Editor Script + * + * @param array() an array of attributes to create the button + * @param $post current post object + */ + $pngx_visual_editor_buttons = apply_filters( 'pngx_visual_editor_functions', array(), $post ); + + /** + * Filter HTML Editor Buttons for PNGX Editor Script + * + * @param array() an array of attributes to create the button + * @param $post current post object + */ + $pngx_html_editor_buttons = apply_filters( 'pngx_html_editor_functions', array(), $post ); + + /** + * Variables for WP Editor Script + */ + $pngx_editor_vars = array( + 'url' => get_home_url(), + 'includes_url' => includes_url(), + 'visual_editor_buttons' => $pngx_visual_editor_buttons, + 'html_editor_buttons' => $pngx_html_editor_buttons, + 'rich_editing' => get_user_meta( get_current_user_id(), 'rich_editing', true ), + ); + wp_localize_script( 'pngx-wp-editor', 'pngx_editor_vars', $pngx_editor_vars ); + + if ( is_object( $post ) ) { + $post->load_scripts = true; + } + } + + $std = isset( $field['std'] ) ? $field['std'] : ''; + $rows = isset( $field['rows'] ) ? $field['rows'] : 12; + $cols = isset( $field['cols'] ) ? $field['cols'] : 50; + $class = isset( $field['class'] ) ? $field['class'] : ''; + $repeating = isset( $field['repeating'] ) ? '[]' : ''; + + ?> + + + ' . esc_html( $field['desc'] ) . ''; + } + + } + +} diff --git a/src/Pngx/Admin/Help.php b/src/Pngx/Admin/Help.php index b8f9114..d837d11 100644 --- a/src/Pngx/Admin/Help.php +++ b/src/Pngx/Admin/Help.php @@ -1,221 +1,221 @@ -fields; - } - - /** - * Array of All Help Fields - */ - protected function set_help_fields() { - /* - * Sample Help Section - * - * Help Sections should aways start with a heading and end with end_list - * - * Choose either section or tab to place the content - */ - $this->fields['header_video_guides_content'] = array( // unique id - 'section' => '', // options tab to place help content - 'tab' => 'content', // meta tab to place help content - 'text' => 'Content', // title for content section on help tab - 'type' => 'heading' //field type heading only used in opening - ); - $this->fields['video_creating'] = array( // unique id - 'section' => '', //option tab to place help - 'tab' => 'content', //meta tab to place help - 'text' => 'Overview of Creating', //descriptive text for help - 'video_id' => 'I1v9HxdIsSE', //Youtube Video ID - 'type' => 'video' //field type video - ); - $this->fields['link_pro_hide_deal'] = array( // unique id - 'section' => '', //option tab to place help - 'tab' => 'content', //meta tab to place help - 'text' => 'Descriptive Text',//descriptive text for help - 'link' => 'http://cctor.link/Ihoro', //helo link - 'pro' => 'Pro', //Add Pro superscript for pro only feature - 'type' => 'links' //field type links - ); - $this->fields['video_end_list_content'] = array( // unique id - 'section' => '', // options tab close for this content - 'tab' => 'content', // meta tab close for this content - 'type' => 'end_list' - ); - } - - /** - * Find string in multidimensional array - * - * Thanks to jwueller http://stackoverflow.com/a/4128377 - * - * @param $needle - * @param $haystack - * @param bool|false $strict - * - * @return bool - */ - public function in_array_r( $needle, $haystack, $strict = false ) { - foreach ( $haystack as $item ) { - if ( ( $strict ? $item === $needle : $item == $needle ) || ( is_array( $item ) && $this->in_array_r( $needle, $item, $strict ) ) ) { - return true; - } - } - - return false; - } - - /** - * Display Help Fields in Tab - * - * @param null $section - */ - public function display_help( $section = null, $page_screen_id = null, $class = null ) { - - if ( ! $section ) { - return; - } - - if ( 'all' != $section && ! $this->in_array_r( $section, $this->fields ) ) { - return; - } - - $screen = get_current_screen(); - - if ( 'all' != $section ) { - - if ( $page_screen_id == $screen->id ) { - echo ''; - } - - echo '
'; - - echo ''; - - echo '
'; - - echo '
'; - echo '

' . __( 'Video Guides', 'plugin-engine' ) . '

'; - echo '
    '; - foreach ( $this->fields as $help_field ) { - - if ( isset( $help_field['type'] ) && 'video' == $help_field['type'] ) { - - if ( $section == $help_field['tab'] || $section == $help_field['section'] ) { - $this->help_fields_switch( $help_field, $section ); - } - } - - } - echo '
'; - - echo '
'; - echo '

' . __( 'Guides', 'plugin-engine' ) . '

'; - echo '
    '; - foreach ( $this->fields as $help_field ) { - - if ( isset( $help_field['type'] ) && 'links' == $help_field['type'] ) { - - if ( $section == $help_field['tab'] || $section == $help_field['section'] ) { - $this->help_fields_switch( $help_field, $section ); - } - } - - } - echo '
'; - - echo '
'; - - if ( $page_screen_id == $screen->id ) { - echo ''; - } - - } else { - - //All Fields Display for Help Tabs - foreach ( $this->fields as $help_field ) { - - if ( isset( $help_field['type'] ) ) { - - if ( 'all' == $section ) { - $this->help_fields_switch( $help_field, $section ); - } - - } - } - } - - } - - protected function help_fields_switch( $help_field = array(), $section = null ) { - - switch ( $help_field['type'] ) { - - case 'heading': - ?> - -

-
    - -
- ' . esc_html( $help_field['pro'] ) . ''; - } - ?> -
  • -
  • - - ' . esc_html( $help_field['pro'] ) . ''; - } - ?> -
  • -
  • - fields; + } + + /** + * Array of All Help Fields + */ + protected function set_help_fields() { + /* + * Sample Help Section + * + * Help Sections should aways start with a heading and end with end_list + * + * Choose either section or tab to place the content + */ + $this->fields['header_video_guides_content'] = array( // unique id + 'section' => '', // options tab to place help content + 'tab' => 'content', // meta tab to place help content + 'text' => 'Content', // title for content section on help tab + 'type' => 'heading' //field type heading only used in opening + ); + $this->fields['video_creating'] = array( // unique id + 'section' => '', //option tab to place help + 'tab' => 'content', //meta tab to place help + 'text' => 'Overview of Creating', //descriptive text for help + 'video_id' => 'I1v9HxdIsSE', //Youtube Video ID + 'type' => 'video' //field type video + ); + $this->fields['link_pro_hide_deal'] = array( // unique id + 'section' => '', //option tab to place help + 'tab' => 'content', //meta tab to place help + 'text' => 'Descriptive Text',//descriptive text for help + 'link' => 'http://cctor.link/Ihoro', //helo link + 'pro' => 'Pro', //Add Pro superscript for pro only feature + 'type' => 'links' //field type links + ); + $this->fields['video_end_list_content'] = array( // unique id + 'section' => '', // options tab close for this content + 'tab' => 'content', // meta tab close for this content + 'type' => 'end_list' + ); + } + + /** + * Find string in multidimensional array + * + * Thanks to jwueller http://stackoverflow.com/a/4128377 + * + * @param $needle + * @param $haystack + * @param bool|false $strict + * + * @return bool + */ + public function in_array_r( $needle, $haystack, $strict = false ) { + foreach ( $haystack as $item ) { + if ( ( $strict ? $item === $needle : $item == $needle ) || ( is_array( $item ) && $this->in_array_r( $needle, $item, $strict ) ) ) { + return true; + } + } + + return false; + } + + /** + * Display Help Fields in Tab + * + * @param null $section + */ + public function display_help( $section = null, $page_screen_id = null, $class = null ) { + + if ( ! $section ) { + return; + } + + if ( 'all' != $section && ! $this->in_array_r( $section, $this->fields ) ) { + return; + } + + $screen = get_current_screen(); + + if ( 'all' != $section ) { + + if ( $page_screen_id == $screen->id ) { + echo ''; + } + + echo '
    '; + + echo ''; + + echo '
    '; + + echo '
    '; + echo '

    ' . __( 'Video Guides', 'plugin-engine' ) . '

    '; + echo '
      '; + foreach ( $this->fields as $help_field ) { + + if ( isset( $help_field['type'] ) && 'video' == $help_field['type'] ) { + + if ( $section == $help_field['tab'] || $section == $help_field['section'] ) { + $this->help_fields_switch( $help_field, $section ); + } + } + + } + echo '
    '; + + echo '
    '; + echo '

    ' . __( 'Guides', 'plugin-engine' ) . '

    '; + echo '
      '; + foreach ( $this->fields as $help_field ) { + + if ( isset( $help_field['type'] ) && 'links' == $help_field['type'] ) { + + if ( $section == $help_field['tab'] || $section == $help_field['section'] ) { + $this->help_fields_switch( $help_field, $section ); + } + } + + } + echo '
    '; + + echo '
    '; + + if ( $page_screen_id == $screen->id ) { + echo ''; + } + + } else { + + //All Fields Display for Help Tabs + foreach ( $this->fields as $help_field ) { + + if ( isset( $help_field['type'] ) ) { + + if ( 'all' == $section ) { + $this->help_fields_switch( $help_field, $section ); + } + + } + } + } + + } + + protected function help_fields_switch( $help_field = array(), $section = null ) { + + switch ( $help_field['type'] ) { + + case 'heading': + ?> + +

    +
      + +
    + ' . esc_html( $help_field['pro'] ) . ''; + } + ?> +
  • +
  • + + ' . esc_html( $help_field['pro'] ) . ''; + } + ?> +
  • +
  • + post_type ) && ! in_array( $post->post_type, $this->get_post_types() ) ) { + if ( + isset( $post->post_type ) && + ! in_array( $post->post_type, $this->get_post_types() ) + ) { return; } @@ -331,8 +348,20 @@ public function save_meta( $post_id, $post ) { return; } - //Verify Nonce - if ( isset( $_POST['pngx_nonce'] ) && ! wp_verify_nonce( $_POST['pngx_nonce'], 'pngx_save_fields' ) && ( isset( $_POST['_inline_edit'] ) && ! wp_verify_nonce( $_POST['_inline_edit'], 'inlineeditnonce' ) ) ) { + // Verify Plugin Nonce. + if ( + ! isset( $_POST['_inline_edit'] ) && + isset( $_POST['pngx_nonce'] ) && + ! wp_verify_nonce( $_POST['pngx_nonce'], 'pngx_save_fields' ) + ) { + return; + } + + // Verify Inline Edit Nonce. + if ( + isset( $_POST['_inline_edit'] ) && + ! wp_verify_nonce( $_POST['_inline_edit'], 'inlineeditnonce' ) + ) { return; } diff --git a/src/Pngx/Admin/Plugin_License_List.php b/src/Pngx/Admin/Plugin_License_List.php index dc5f860..e2c71b0 100644 --- a/src/Pngx/Admin/Plugin_License_List.php +++ b/src/Pngx/Admin/Plugin_License_List.php @@ -1,249 +1,249 @@ -basename = plugin_basename( $file ); - $this->file = basename( dirname( $file ) ); - - $this->license_key = $license_key; - $this->license_info = get_option( $this->license_key ); - $this->plugin_name = $plugin_name; - $this->status_name = $status_name; - $this->options = $options; - $this->shop_url = $shop_url; - $this->links = $links; - $this->deactivate_link = ''; - $this->deactivate_msg = __( 'Please deactivate the license key to deactivate this plugin', 'plugin-engine' ); - - //Modify Plugin Links - add_filter( 'plugin_action_links_' . $file, array( $this, 'plugin_links' ), 10 ); - - //Add License Key Field - add_action( 'after_plugin_row_' . $file, array( $this, 'license_key' ), 10 ); - - } - - public function plugin_links( $links ) { - - //Save Deactivate Link - if ( isset( $links['deactivate'] ) ) { - $this->deactivate_link = $links['deactivate']; - } - - $plugin_links = array(); - - if ( ! empty( $this->links ) ) { - foreach ( $this->links as $k => $link ) { - - $plugin_links[] = '' . esc_html( $k ) . ''; - - } - - } - - if ( isset( $this->license_info['status'] ) && ( 'valid' === $this->license_info['status'] ) ) { - $links['deactivate'] = $this->deactivate_msg; - } - - foreach ( $plugin_links as $link ) { - array_unshift( $links, $link ); - } - - return $links; - - } - - - public function license_key() { - - $this->license_key_output(); - - } - - /** - * Display license key field - * - */ - public function license_key_output() { - - wp_enqueue_style( 'pngx-admin' ); - wp_enqueue_script( 'pngx-license' ); - - ?> - - - -
    -
    - license_info['key'] ) ? $this->license_info['key'] : ''; - - $std = __( 'Enter License Key', 'plugin-engine' ); - - ?> - - license_info['status'] ) && 'valid' === $this->license_info['status'] ? 'readonly' : ''; ?> - /> - - license_info['expires'] ) ) { // Only Display Expiration if Date - $expiration_date = strtotime( $this->license_info['expires'] ); - $expiration_date = date( get_option( 'date_format' ), $expiration_date ); - $expiration_msg = sprintf( __( ' and Expires on %s', 'plugin-engine' ), esc_attr( $expiration_date ) ); - } - - ?> - - - - - - - - - - - - - - - license_info['status'] ) && 'valid' == $this->license_info['status'] ) { - - ?> - - - -
    - -
    - - - - - - - - license_info['status'] ) && ( 'invalid' == $this->license_info['status'] || 'missing' == $this->license_info['status'] ) && ! $this->license_info['expired'] ) { - $license_info_valid = __( 'License is Invalid', 'plugin-engine' ); - } elseif ( isset( $this->license_info['expired'] ) && 'expired' == $this->license_info['expired'] ) { - $license_info_valid = sprintf( __( 'License Expired on %s', 'plugin-engine' ), esc_attr( $expiration_date ) ); - } else { - $license_info_valid = __( 'License is Not Active', 'plugin-engine' ); - } - - ?> - - - -
    - -
    - - - - - - options[ $this->license_key ]['desc'] ) && "" != $this->options[ $this->license_key ]['desc'] ) { - ?> -
    - options[ $this->license_key ]['desc'] ); ?> -
    - -
    - -
    -
    - - - basename = plugin_basename( $file ); + $this->file = basename( dirname( $file ) ); + + $this->license_key = $license_key; + $this->license_info = get_option( $this->license_key ); + $this->plugin_name = $plugin_name; + $this->status_name = $status_name; + $this->options = $options; + $this->shop_url = $shop_url; + $this->links = $links; + $this->deactivate_link = ''; + $this->deactivate_msg = __( 'Please deactivate the license key to deactivate this plugin', 'plugin-engine' ); + + //Modify Plugin Links + add_filter( 'plugin_action_links_' . $file, array( $this, 'plugin_links' ), 10 ); + + //Add License Key Field + add_action( 'after_plugin_row_' . $file, array( $this, 'license_key' ), 10 ); + + } + + public function plugin_links( $links ) { + + //Save Deactivate Link + if ( isset( $links['deactivate'] ) ) { + $this->deactivate_link = $links['deactivate']; + } + + $plugin_links = array(); + + if ( ! empty( $this->links ) ) { + foreach ( $this->links as $k => $link ) { + + $plugin_links[] = '' . esc_html( $k ) . ''; + + } + + } + + if ( isset( $this->license_info['status'] ) && ( 'valid' === $this->license_info['status'] ) ) { + $links['deactivate'] = $this->deactivate_msg; + } + + foreach ( $plugin_links as $link ) { + array_unshift( $links, $link ); + } + + return $links; + + } + + + public function license_key() { + + $this->license_key_output(); + + } + + /** + * Display license key field + * + */ + public function license_key_output() { + + wp_enqueue_style( 'pngx-admin' ); + wp_enqueue_script( 'pngx-license' ); + + ?> + + + +
    +
    + license_info['key'] ) ? $this->license_info['key'] : ''; + + $std = __( 'Enter License Key', 'plugin-engine' ); + + ?> + + license_info['status'] ) && 'valid' === $this->license_info['status'] ? 'readonly' : ''; ?> + /> + + license_info['expires'] ) ) { // Only Display Expiration if Date + $expiration_date = strtotime( $this->license_info['expires'] ); + $expiration_date = date( get_option( 'date_format' ), $expiration_date ); + $expiration_msg = sprintf( __( ' and Expires on %s', 'plugin-engine' ), esc_attr( $expiration_date ) ); + } + + ?> + + + + + + + + + + + + + + + license_info['status'] ) && 'valid' == $this->license_info['status'] ) { + + ?> + + + +
    + +
    + + + + + + + + license_info['status'] ) && ( 'invalid' == $this->license_info['status'] || 'missing' == $this->license_info['status'] ) && ! $this->license_info['expired'] ) { + $license_info_valid = __( 'License is Invalid', 'plugin-engine' ); + } elseif ( isset( $this->license_info['expired'] ) && 'expired' == $this->license_info['expired'] ) { + $license_info_valid = sprintf( __( 'License Expired on %s', 'plugin-engine' ), esc_attr( $expiration_date ) ); + } else { + $license_info_valid = __( 'License is Not Active', 'plugin-engine' ); + } + + ?> + + + +
    + +
    + + + + + + options[ $this->license_key ]['desc'] ) && "" != $this->options[ $this->license_key ]['desc'] ) { + ?> +
    + options[ $this->license_key ]['desc'] ); ?> +
    + +
    + +
    +
    + + + -
    -
    - $field_name ) { - - if ( ! isset( $fields[ $field_name ] ) ) { - continue; - } - - if ( 'font-color' === $type || 'background-color' === $type || 'background-color:hover' === $type ) { - $meta = get_post_meta( $post_id, $field_name, true ); - Pngx__Admin__Field__Color::display( $fields[ $field_name ], false, false, $meta ); - } - - } - - ?> -
    - +
    +
    + $field_name ) { + + if ( ! isset( $fields[ $field_name ] ) ) { + continue; + } + + if ( 'font-color' === $type || 'background-color' === $type || 'background-color:hover' === $type ) { + $meta = get_post_meta( $post_id, $field_name, true ); + Pngx__Admin__Field__Color::display( $fields[ $field_name ], false, false, $meta ); + } + + } + + ?> +
    + - - '; - } - - /** - * Collect system information for support - * - * @return array of system data for support - */ - public function get_support_stats() { - - $systeminfo = array( - 'Site' => $this->get_site_info(), - 'WordPress' => $this->get_wp_info(), - 'System' => $this->get_site_server_info(), - 'User' => $this->get_user_info(), - 'Plugin Engine Settings' => $this->get_pngx_info(), - 'Active Plugins' => $this->get_plugins(), - 'Inactive Plugins' => $this->get_plugins( true ), - 'Network Plugins' => $this->get_network_plugins(), - 'MU Plugins' => $this->get_mu_plugins(), - ); - - $systeminfo = apply_filters( 'pngx-support-info', $systeminfo ); - - return $systeminfo; - } - - /** - * Render system information into a pretty output - * - * @return string pretty HTML - */ - public function formatted_support_stats() { - $systeminfo = $this->get_support_stats(); - $output = ''; - $output .= '
    '; - foreach ( $systeminfo as $k => $v ) { - - switch ( $k ) { - case 'name' : - case 'email' : - continue 2; - break; - case 'url' : - $v = sprintf( '%s', $v, $v ); - break; - } - - if ( is_array( $v ) ) { - $keys = array_keys( $v ); - $key = array_shift( $keys ); - $is_numeric_array = is_numeric( $key ); - unset( $keys ); - unset( $key ); - } - - $output .= sprintf( '
    %s
    ', $k ); - if ( empty( $v ) ) { - $output .= '
    -
    '; - } elseif ( is_bool( $v ) ) { - $output .= sprintf( '
    %s
    ', $v ); - } elseif ( is_string( $v ) ) { - $output .= sprintf( '
    %s
    ', $v ); - } elseif ( is_array( $v ) && $is_numeric_array ) { - $output .= sprintf( '
    • %s
    ', join( '
  • ', $v ) ); - } else { - $formatted_v = array(); - foreach ( $v as $obj_key => $obj_val ) { - if ( is_array( $obj_val ) ) { - $formatted_v[] = sprintf( '
  • %s =
    %s
  • ', $obj_key, print_r( $obj_val, true ) ); - } else { - $formatted_v[] = sprintf( '
  • %s = %s
  • ', $obj_key, $obj_val ); - } - } - $v = join( "\n", $formatted_v ); - $output .= sprintf( '
      %s
    ', print_r( $v, true ) ); - } - } - $output .= '
    '; - - return $output; - } - - - /** - * Get a basic overview of site info - * - * @return array - */ - public function get_site_info() { - global $wpdb; - - // Get theme info from EDD, thanks! - $theme_data = wp_get_theme(); - $theme = $theme_data->Name . ' ' . $theme_data->Version; - $parent_theme = $theme_data->Template; - if ( ! empty( $parent_theme ) ) { - $parent_theme_data = wp_get_theme( $parent_theme ); - $parent_theme = $parent_theme_data->Name . ' ' . $parent_theme_data->Version; - } - - $site = array(); - $site['Active Theme'] = $theme; - if ( $parent_theme !== $theme ) { - $site['Parent Theme'] = $parent_theme; - } - $site['Character Set'] = get_option( 'blog_charset' ); - $site['Home URL'] = get_home_url(); - $site['Site URL'] = get_site_url(); - $site['Site Language'] = get_option( 'WPLANG' ) ? get_option( 'WPLANG' ) : esc_html__( 'English', 'plugin-engine' ); - $site['Table Prefix'] = 'Length: ' . strlen( $wpdb->prefix ); - - /** - * Filter the Site Infomation for System Infomation - * - * @param $site array an array of site infomation - */ - $site = apply_filters( 'pngx-filter-system-info-site-infomation', $site ); - - return $site; - - } - - /** - * Return WordPress Settings and Defaults - * - * @return array - */ - public function get_wp_info() { - - $wordpress = array(); - $wordpress['WordPress version'] = get_bloginfo( 'version' ); - $wordpress['ABSPATH'] = ABSPATH; - $wordpress['Memory Limit'] = WP_MEMORY_LIMIT; - $wordpress['Multisite'] = is_multisite(); - $wordpress['Permalink Structure'] = ( get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default' ); - $wordpress['Registered Post Status'] = implode( ', ', get_post_stati() ); - $wordpress['Show On Front'] = get_option( 'show_on_front' ); - // Only show page specs if frontpage is set to 'page', from EDD, thanks! - if ( get_option( 'show_on_front' ) == 'page' ) { - $front_page_id = get_option( 'page_on_front' ); - $blog_page_id = get_option( 'page_for_posts' ); - $wordpress['Page On Front'] = ( $front_page_id != 0 ? get_the_title( $front_page_id ) . ' (#' . $front_page_id . ')' : 'Unset' ); - $wordpress['Page For Posts'] = ( $blog_page_id != 0 ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset' ); - } - $wordpress['Server Timezone'] = date_default_timezone_get(); - $wordpress['WP Date Format'] = get_option( 'date_format' ); - $wordpress['WP GMT Offset'] = get_option( 'gmt_offset' ) ? ' ' . get_option( 'gmt_offset' ) : esc_html__( 'Unknown or not set', 'plugin-engine' ); - $wordpress['WP Time Format'] = get_option( 'time_format' ); - $wordpress['WP Timezone'] = get_option( 'timezone_string' ) ? get_option( 'timezone_string' ) : esc_html__( 'Unknown or not set', 'plugin-engine' ); - $wordpress['Week Starts On'] = get_option( 'start_of_week' ); - $wordpress['WP_DEBUG'] = ( defined( 'WP_DEBUG' ) ? WP_DEBUG ? 'Enabled' : 'Disabled' : 'Not set' ); - - - /** - * Filter the WordPress Settings for System Information - * - * @param $site array an array of WordPress settings - */ - $wordpress = apply_filters( 'pngx-filter-system-info-wordpress-infomation', $wordpress ); - - return $wordpress; - - } - - /** - * Get basic server, database and php information - * - * @return array - */ - public function get_site_server_info() { - global $wpdb; - - //Server Information - $server = array(); - - // OS - $os = $this->get_os(); - $server['Operating System'] = $os['name']; - $server['SAPI'] = php_sapi_name(); - $server['Server User'] = $this->get_user(); - $server['Server Software'] = $_SERVER['SERVER_SOFTWARE']; - - //MYSQL - $server['MySQL Version'] = $wpdb->db_version(); - $server['MySQL Install Path'] = $this->guess_path( 'mysql' ); - - //PHP Info - $server['PHP version'] = phpversion(); - - if ( function_exists( 'exec' ) ) { - $exec = 'Enabled'; - } else { - $exec = 'Disabled'; - } - $server['Exec Enabled'] = $exec; - $php_vars = array( - 'display_errors', - 'log_errors', - 'max_execution_time', - 'max_input_vars', - 'memory_limit', - 'post_max_size', - 'safe_mode', - 'upload_max_filesize', - ); - foreach ( $php_vars as $php_var ) { - if ( isset( $wpdb->qm_php_vars ) && isset( $wpdb->qm_php_vars[ $php_var ] ) ) { - $val = $wpdb->qm_php_vars[ $php_var ]; - } else { - $val = ini_get( $php_var ); - } - $server[ $php_var ] = $val; - } - - /** - * Filter the Server Settings for Server Information - * - * @param $site array an array of Server settings - */ - $server = apply_filters( 'pngx-filter-system-info-server-infomation', $server ); - - return $server; - - } - - /** - * Get Basic Infomation about Current User - * - * @return array - */ - public function get_user_info() { - - if ( ! class_exists( 'Pngx_Browser' ) ) { - require_once Pngx__Main::instance()->vendor_path . 'browser/browser.php'; - } - - $browser = new Pngx_Browser(); - - $user = wp_get_current_user(); - $user_info = array(); - $user_info['Name'] = $user->display_name; - $user_info['Email'] = $user->user_email; - $user_info['Browser Name'] = $browser->_browser_name; - $user_info['Browser Version'] = $browser->_version; - $user_info['User Agent String'] = $browser->_agent; - $user_info['Platform'] = $browser->_platform; - - /** - * Filter the User Information for System Information - * - * @param $site array an array of User Information - */ - $user_info = apply_filters( 'pngx-filter-system-info-user-infomation', $user_info ); - - return $user_info; - - } - - /** - * Get Infomation about the Plugin Engine - * - * @return array - */ - public function get_pngx_info() { - - $pngx = array(); - $pngx['Plugin Engine Library Dir'] = $GLOBALS['plugin-engine-info']['dir']; - $pngx['Plugin Engine Library Version'] = $GLOBALS['plugin-engine-info']['version']; - $pngx['Plugin Engine Permalink Flush'] = get_option( 'pngx_permalink_flush' ); - - /** - * Filter the Plugin Engine Settings for System Information - * - * @param $site array an array of Plugin Engine Settings - */ - $pngx = apply_filters( 'pngx-filter-system-info-pngx-settings', $pngx ); - - return $pngx; - - } - - - /** - * Add License Keys to System Info - * - * @return array|mixed - */ - public function get_key() { - - $keys = apply_filters( 'pngx-system-info-license-keys', array() ); - //Obfuscate the License Keys for Security - if ( is_array( $keys ) && ! empty( $keys ) ) { - $secure_keys = array(); - foreach ( $keys as $plugin => $license ) { - - if ( isset( $license['key'] ) ) { - $license['key'] = preg_replace( '/^(.{4}).*(.{4})$/', '$1' . str_repeat( '#', 32 ) . '$2', $license['key'] ); - } - if ( is_array( $license ) ) { - $secure_keys[ $plugin ] = implode( ', ', $license ); - } - } - - $keys = $secure_keys; - } - - /** - * Filter the License Keys for System Information - * - * @param $site array an array of License Keys - */ - $keys = apply_filters( 'pngx-filter-system-info-license-keys', $keys ); - - return $keys; - - } - - - /** - * Get the Plugin Options added to filters - * - * @return array - */ - public function get_plugin_settings() { - - /** - * Add saved options to System Info for plugin engine using plugins - * - * - * @param array array() an array of fields to display in option tabs. - * - */ - $options = apply_filters( 'pngx-system-info-options', array() ); - - /** - * Filter the options fields for System Info - * - * - * @param array array() an array of fields to display in option tabs. - * - */ - $fields = apply_filters( 'pngx-option-fields', array() ); - - $settings = array(); - - //Setup Settings to a human readable titles - if ( is_array( $options ) && is_array( $fields ) ) { - - foreach ( $options as $k => $v ) { - - if ( is_array( $v ) ) { - - foreach ( $v as $key => $value ) { - - if ( isset( $fields[ $key ]['title'] ) ) { - $settings[ $fields[ $key ]['title'] ] = esc_textarea( $value ); - } - - } - - } - } - } - - - ksort( $settings ); - - /** - * Filter the Plugin Settings for System Information - * - * @param $site array an array of Plugin Settings - */ - $settings = apply_filters( 'pngx-filter-system-info-plugin-settings', $settings ); - - return $settings; - - } - - - /** - * Get List of Active or Inactive Plugins - * - * @param bool $inactive - * - * @return array - */ - public function get_plugins( $inactive = false ) { - - // Get plugins that have an update - $updates = get_plugin_updates(); - $all_plugins = get_plugins(); - $active_plugins = get_option( 'active_plugins', array() ); - $plugins = array(); - - foreach ( $all_plugins as $plugin_path => $p ) { - - if ( $inactive ) { - if ( in_array( $plugin_path, $active_plugins ) ) { - continue; - } - } else { - if ( ! in_array( $plugin_path, $active_plugins ) ) { - continue; - } - } - - $plugin = $p['Name']; - if ( ! empty( $p['Version'] ) ) { - $plugin .= sprintf( ' version %s', $p['Version'] ); - } - if ( ! empty( $p['Author'] ) ) { - $plugin .= sprintf( ' by %s', $p['Author'] ); - } - if ( ! empty( $p['AuthorURI'] ) ) { - $plugin .= sprintf( ' (%s)', $p['AuthorURI'] ); - } - - $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[ $plugin_path ]->update->new_version . ')' : ''; - - $plugins[] = $plugin . $update; - - } - - /** - * Filter the Active and In Active Plugins for System Information - * - * @param $site array an array of Active and In Active Plugins - */ - $plugins = apply_filters( 'pngx-filter-system-info-active-inactive-plugins', $plugins ); - - return $plugins; - - } - - /** - * Get List of Network Active Plugins - * - * @return array - */ - public function get_network_plugins() { - - $network_plugins = array(); - if ( is_multisite() && function_exists( 'get_plugin_data' ) ) { - $plugins_raw = wp_get_active_network_plugins(); - foreach ( $plugins_raw as $k => $v ) { - $plugin_details = get_plugin_data( $v ); - $plugin = $plugin_details['Name']; - if ( ! empty( $plugin_details['Version'] ) ) { - $plugin .= sprintf( ' version %s', $plugin_details['Version'] ); - } - if ( ! empty( $plugin_details['Author'] ) ) { - $plugin .= sprintf( ' by %s', $plugin_details['Author'] ); - } - if ( ! empty( $plugin_details['AuthorURI'] ) ) { - $plugin .= sprintf( '(%s)', $plugin_details['AuthorURI'] ); - } - $network_plugins[] = $plugin; - } - } - - - /** - * Filter the Network Plugins for System Information - * - * @param $site array an array of Newtork Plugins - */ - $network_plugins = apply_filters( 'pngx-filter-system-info-network-plugins', $network_plugins ); - - return $network_plugins; - - } - - - /** - * Get List of Must Use Plugins - * - * @return array - */ - public function get_mu_plugins() { - - $mu_plugins = array(); - if ( function_exists( 'get_mu_plugins' ) ) { - $mu_plugins_raw = get_mu_plugins(); - foreach ( $mu_plugins_raw as $k => $v ) { - $plugin = $v['Name']; - if ( ! empty( $v['Version'] ) ) { - $plugin .= sprintf( ' version %s', $v['Version'] ); - } - if ( ! empty( $v['Author'] ) ) { - $plugin .= sprintf( ' by %s', $v['Author'] ); - } - if ( ! empty( $v['AuthorURI'] ) ) { - $plugin .= sprintf( '(%s)', $v['AuthorURI'] ); - } - $mu_plugins[] = $plugin; - } - } - - - /** - * Filter the Must Use Plugins for System Information - * - * @param $site array an array of Must Use Plugins - */ - $mu_plugins = apply_filters( 'pngx-filter-system-info-mu-plugins', $mu_plugins ); - - return $mu_plugins; - } - - /** - * Determines the current operating system. - * Coding from WordPress Plugin revisr/classes/class-revisr-compatibility.php - * - * @access public - * @return array - */ - public function get_os() { - $os = array(); - $uname = php_uname( 's' ); - $os['code'] = strtoupper( substr( $uname, 0, 3 ) ); - $os['name'] = $uname; - - return $os; - } - - /** - * Gets the user running this PHP process. - * Coding from WordPress Plugin revisr/classes/class-revisr-compatibility.php - * - * @access public - * @return string - */ - public function get_user() { - if ( function_exists( 'exec' ) ) { - return exec( 'whoami' ); - } - - return __( 'Unknown', 'plugin-engine' ); - } - - /** - * Tries to guess the install path to the provided program. - * Coding from WordPress Plugin revisr/classes/class-revisr-compatibility.php - * - * @access public - * - * @param string $program The program to check for. - * - * @return string - */ - public function guess_path( $program ) { - $os = $this->get_os(); - $program = $this->escapeshellarg( $program ); - - if ( $os['code'] !== 'WIN' ) { - $path = exec( "which $program" ); - } else { - $path = exec( "where $program" ); - } - - if ( $path ) { - return $path; - } else { - return __( 'Not Found', 'plugin-engine' ); - } - } - - /** - * Escapes a shell arguement. - * Coding from WordPress Plugin revisr/classes/class-revisr-admin.php - * - * @access public - * - * @param string $string The string to escape. - * - * @return string $string The escaped string. - */ - public function escapeshellarg( $string ) { - $os = $this->get_os(); - if ( 'WIN' !== $os['code'] ) { - return escapeshellarg( $string ); - } else { - // Windows-friendly workaround. - return '"' . str_replace( "'", "'\\''", $string ) . '"'; - } - } - - /****************** SINGLETON GUTS ******************/ - - /** - * Enforce Singleton Pattern - */ - private static $instance; - - - public static function getInstance() { - if ( null == self::$instance ) { - $instance = new self; - self::$instance = $instance; - } - - return self::$instance; - } - } - - -} + + + '; + } + + /** + * Collect system information for support + * + * @return array of system data for support + */ + public function get_support_stats() { + + $systeminfo = array( + 'Site' => $this->get_site_info(), + 'WordPress' => $this->get_wp_info(), + 'System' => $this->get_site_server_info(), + 'User' => $this->get_user_info(), + 'Plugin Engine Settings' => $this->get_pngx_info(), + 'Active Plugins' => $this->get_plugins(), + 'Inactive Plugins' => $this->get_plugins( true ), + 'Network Plugins' => $this->get_network_plugins(), + 'MU Plugins' => $this->get_mu_plugins(), + ); + + $systeminfo = apply_filters( 'pngx-support-info', $systeminfo ); + + return $systeminfo; + } + + /** + * Render system information into a pretty output + * + * @return string pretty HTML + */ + public function formatted_support_stats() { + $systeminfo = $this->get_support_stats(); + $output = ''; + $output .= '
    '; + foreach ( $systeminfo as $k => $v ) { + + switch ( $k ) { + case 'name' : + case 'email' : + continue 2; + break; + case 'url' : + $v = sprintf( '%s', $v, $v ); + break; + } + + if ( is_array( $v ) ) { + $keys = array_keys( $v ); + $key = array_shift( $keys ); + $is_numeric_array = is_numeric( $key ); + unset( $keys ); + unset( $key ); + } + + $output .= sprintf( '
    %s
    ', $k ); + if ( empty( $v ) ) { + $output .= '
    -
    '; + } elseif ( is_bool( $v ) ) { + $output .= sprintf( '
    %s
    ', $v ); + } elseif ( is_string( $v ) ) { + $output .= sprintf( '
    %s
    ', $v ); + } elseif ( is_array( $v ) && $is_numeric_array ) { + $output .= sprintf( '
    • %s
    ', join( '
  • ', $v ) ); + } else { + $formatted_v = array(); + foreach ( $v as $obj_key => $obj_val ) { + if ( is_array( $obj_val ) ) { + $formatted_v[] = sprintf( '
  • %s =
    %s
  • ', $obj_key, print_r( $obj_val, true ) ); + } else { + $formatted_v[] = sprintf( '
  • %s = %s
  • ', $obj_key, $obj_val ); + } + } + $v = join( "\n", $formatted_v ); + $output .= sprintf( '
      %s
    ', print_r( $v, true ) ); + } + } + $output .= '
    '; + + return $output; + } + + + /** + * Get a basic overview of site info + * + * @return array + */ + public function get_site_info() { + global $wpdb; + + // Get theme info from EDD, thanks! + $theme_data = wp_get_theme(); + $theme = $theme_data->Name . ' ' . $theme_data->Version; + $parent_theme = $theme_data->Template; + if ( ! empty( $parent_theme ) ) { + $parent_theme_data = wp_get_theme( $parent_theme ); + $parent_theme = $parent_theme_data->Name . ' ' . $parent_theme_data->Version; + } + + $site = array(); + $site['Active Theme'] = $theme; + if ( $parent_theme !== $theme ) { + $site['Parent Theme'] = $parent_theme; + } + $site['Character Set'] = get_option( 'blog_charset' ); + $site['Home URL'] = get_home_url(); + $site['Site URL'] = get_site_url(); + $site['Site Language'] = get_option( 'WPLANG' ) ? get_option( 'WPLANG' ) : esc_html__( 'English', 'plugin-engine' ); + $site['Table Prefix'] = 'Length: ' . strlen( $wpdb->prefix ); + + /** + * Filter the Site Infomation for System Infomation + * + * @param $site array an array of site infomation + */ + $site = apply_filters( 'pngx-filter-system-info-site-infomation', $site ); + + return $site; + + } + + /** + * Return WordPress Settings and Defaults + * + * @return array + */ + public function get_wp_info() { + + $wordpress = array(); + $wordpress['WordPress version'] = get_bloginfo( 'version' ); + $wordpress['ABSPATH'] = ABSPATH; + $wordpress['Memory Limit'] = WP_MEMORY_LIMIT; + $wordpress['Multisite'] = is_multisite(); + $wordpress['Permalink Structure'] = ( get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default' ); + $wordpress['Registered Post Status'] = implode( ', ', get_post_stati() ); + $wordpress['Show On Front'] = get_option( 'show_on_front' ); + // Only show page specs if frontpage is set to 'page', from EDD, thanks! + if ( get_option( 'show_on_front' ) == 'page' ) { + $front_page_id = get_option( 'page_on_front' ); + $blog_page_id = get_option( 'page_for_posts' ); + $wordpress['Page On Front'] = ( $front_page_id != 0 ? get_the_title( $front_page_id ) . ' (#' . $front_page_id . ')' : 'Unset' ); + $wordpress['Page For Posts'] = ( $blog_page_id != 0 ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset' ); + } + $wordpress['Server Timezone'] = date_default_timezone_get(); + $wordpress['WP Date Format'] = get_option( 'date_format' ); + $wordpress['WP GMT Offset'] = get_option( 'gmt_offset' ) ? ' ' . get_option( 'gmt_offset' ) : esc_html__( 'Unknown or not set', 'plugin-engine' ); + $wordpress['WP Time Format'] = get_option( 'time_format' ); + $wordpress['WP Timezone'] = get_option( 'timezone_string' ) ? get_option( 'timezone_string' ) : esc_html__( 'Unknown or not set', 'plugin-engine' ); + $wordpress['Week Starts On'] = get_option( 'start_of_week' ); + $wordpress['WP_DEBUG'] = ( defined( 'WP_DEBUG' ) ? WP_DEBUG ? 'Enabled' : 'Disabled' : 'Not set' ); + + + /** + * Filter the WordPress Settings for System Information + * + * @param $site array an array of WordPress settings + */ + $wordpress = apply_filters( 'pngx-filter-system-info-wordpress-infomation', $wordpress ); + + return $wordpress; + + } + + /** + * Get basic server, database and php information + * + * @return array + */ + public function get_site_server_info() { + global $wpdb; + + //Server Information + $server = array(); + + // OS + $os = $this->get_os(); + $server['Operating System'] = $os['name']; + $server['SAPI'] = php_sapi_name(); + $server['Server User'] = $this->get_user(); + $server['Server Software'] = $_SERVER['SERVER_SOFTWARE']; + + //MYSQL + $server['MySQL Version'] = $wpdb->db_version(); + $server['MySQL Install Path'] = $this->guess_path( 'mysql' ); + + //PHP Info + $server['PHP version'] = phpversion(); + + if ( function_exists( 'exec' ) ) { + $exec = 'Enabled'; + } else { + $exec = 'Disabled'; + } + $server['Exec Enabled'] = $exec; + $php_vars = array( + 'display_errors', + 'log_errors', + 'max_execution_time', + 'max_input_vars', + 'memory_limit', + 'post_max_size', + 'safe_mode', + 'upload_max_filesize', + ); + foreach ( $php_vars as $php_var ) { + if ( isset( $wpdb->qm_php_vars ) && isset( $wpdb->qm_php_vars[ $php_var ] ) ) { + $val = $wpdb->qm_php_vars[ $php_var ]; + } else { + $val = ini_get( $php_var ); + } + $server[ $php_var ] = $val; + } + + /** + * Filter the Server Settings for Server Information + * + * @param $site array an array of Server settings + */ + $server = apply_filters( 'pngx-filter-system-info-server-infomation', $server ); + + return $server; + + } + + /** + * Get Basic Infomation about Current User + * + * @return array + */ + public function get_user_info() { + + if ( ! class_exists( 'Pngx_Browser' ) ) { + require_once Pngx__Main::instance()->vendor_path . 'browser/browser.php'; + } + + $browser = new Pngx_Browser(); + + $user = wp_get_current_user(); + $user_info = array(); + $user_info['Name'] = $user->display_name; + $user_info['Email'] = $user->user_email; + $user_info['Browser Name'] = $browser->_browser_name; + $user_info['Browser Version'] = $browser->_version; + $user_info['User Agent String'] = $browser->_agent; + $user_info['Platform'] = $browser->_platform; + + /** + * Filter the User Information for System Information + * + * @param $site array an array of User Information + */ + $user_info = apply_filters( 'pngx-filter-system-info-user-infomation', $user_info ); + + return $user_info; + + } + + /** + * Get Infomation about the Plugin Engine + * + * @return array + */ + public function get_pngx_info() { + + $pngx = array(); + $pngx['Plugin Engine Library Dir'] = $GLOBALS['plugin-engine-info']['dir']; + $pngx['Plugin Engine Library Version'] = $GLOBALS['plugin-engine-info']['version']; + $pngx['Plugin Engine Permalink Flush'] = get_option( 'pngx_permalink_flush' ); + + /** + * Filter the Plugin Engine Settings for System Information + * + * @param $site array an array of Plugin Engine Settings + */ + $pngx = apply_filters( 'pngx-filter-system-info-pngx-settings', $pngx ); + + return $pngx; + + } + + + /** + * Add License Keys to System Info + * + * @return array|mixed + */ + public function get_key() { + + $keys = apply_filters( 'pngx-system-info-license-keys', array() ); + //Obfuscate the License Keys for Security + if ( is_array( $keys ) && ! empty( $keys ) ) { + $secure_keys = array(); + foreach ( $keys as $plugin => $license ) { + + if ( isset( $license['key'] ) ) { + $license['key'] = preg_replace( '/^(.{4}).*(.{4})$/', '$1' . str_repeat( '#', 32 ) . '$2', $license['key'] ); + } + if ( is_array( $license ) ) { + $secure_keys[ $plugin ] = implode( ', ', $license ); + } + } + + $keys = $secure_keys; + } + + /** + * Filter the License Keys for System Information + * + * @param $site array an array of License Keys + */ + $keys = apply_filters( 'pngx-filter-system-info-license-keys', $keys ); + + return $keys; + + } + + + /** + * Get the Plugin Options added to filters + * + * @return array + */ + public function get_plugin_settings() { + + /** + * Add saved options to System Info for plugin engine using plugins + * + * + * @param array array() an array of fields to display in option tabs. + * + */ + $options = apply_filters( 'pngx-system-info-options', array() ); + + /** + * Filter the options fields for System Info + * + * + * @param array array() an array of fields to display in option tabs. + * + */ + $fields = apply_filters( 'pngx-option-fields', array() ); + + $settings = array(); + + //Setup Settings to a human readable titles + if ( is_array( $options ) && is_array( $fields ) ) { + + foreach ( $options as $k => $v ) { + + if ( is_array( $v ) ) { + + foreach ( $v as $key => $value ) { + + if ( isset( $fields[ $key ]['title'] ) ) { + $settings[ $fields[ $key ]['title'] ] = esc_textarea( $value ); + } + + } + + } + } + } + + + ksort( $settings ); + + /** + * Filter the Plugin Settings for System Information + * + * @param $site array an array of Plugin Settings + */ + $settings = apply_filters( 'pngx-filter-system-info-plugin-settings', $settings ); + + return $settings; + + } + + + /** + * Get List of Active or Inactive Plugins + * + * @param bool $inactive + * + * @return array + */ + public function get_plugins( $inactive = false ) { + + // Get plugins that have an update + $updates = get_plugin_updates(); + $all_plugins = get_plugins(); + $active_plugins = get_option( 'active_plugins', array() ); + $plugins = array(); + + foreach ( $all_plugins as $plugin_path => $p ) { + + if ( $inactive ) { + if ( in_array( $plugin_path, $active_plugins ) ) { + continue; + } + } else { + if ( ! in_array( $plugin_path, $active_plugins ) ) { + continue; + } + } + + $plugin = $p['Name']; + if ( ! empty( $p['Version'] ) ) { + $plugin .= sprintf( ' version %s', $p['Version'] ); + } + if ( ! empty( $p['Author'] ) ) { + $plugin .= sprintf( ' by %s', $p['Author'] ); + } + if ( ! empty( $p['AuthorURI'] ) ) { + $plugin .= sprintf( ' (%s)', $p['AuthorURI'] ); + } + + $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[ $plugin_path ]->update->new_version . ')' : ''; + + $plugins[] = $plugin . $update; + + } + + /** + * Filter the Active and In Active Plugins for System Information + * + * @param $site array an array of Active and In Active Plugins + */ + $plugins = apply_filters( 'pngx-filter-system-info-active-inactive-plugins', $plugins ); + + return $plugins; + + } + + /** + * Get List of Network Active Plugins + * + * @return array + */ + public function get_network_plugins() { + + $network_plugins = array(); + if ( is_multisite() && function_exists( 'get_plugin_data' ) ) { + $plugins_raw = wp_get_active_network_plugins(); + foreach ( $plugins_raw as $k => $v ) { + $plugin_details = get_plugin_data( $v ); + $plugin = $plugin_details['Name']; + if ( ! empty( $plugin_details['Version'] ) ) { + $plugin .= sprintf( ' version %s', $plugin_details['Version'] ); + } + if ( ! empty( $plugin_details['Author'] ) ) { + $plugin .= sprintf( ' by %s', $plugin_details['Author'] ); + } + if ( ! empty( $plugin_details['AuthorURI'] ) ) { + $plugin .= sprintf( '(%s)', $plugin_details['AuthorURI'] ); + } + $network_plugins[] = $plugin; + } + } + + + /** + * Filter the Network Plugins for System Information + * + * @param $site array an array of Newtork Plugins + */ + $network_plugins = apply_filters( 'pngx-filter-system-info-network-plugins', $network_plugins ); + + return $network_plugins; + + } + + + /** + * Get List of Must Use Plugins + * + * @return array + */ + public function get_mu_plugins() { + + $mu_plugins = array(); + if ( function_exists( 'get_mu_plugins' ) ) { + $mu_plugins_raw = get_mu_plugins(); + foreach ( $mu_plugins_raw as $k => $v ) { + $plugin = $v['Name']; + if ( ! empty( $v['Version'] ) ) { + $plugin .= sprintf( ' version %s', $v['Version'] ); + } + if ( ! empty( $v['Author'] ) ) { + $plugin .= sprintf( ' by %s', $v['Author'] ); + } + if ( ! empty( $v['AuthorURI'] ) ) { + $plugin .= sprintf( '(%s)', $v['AuthorURI'] ); + } + $mu_plugins[] = $plugin; + } + } + + + /** + * Filter the Must Use Plugins for System Information + * + * @param $site array an array of Must Use Plugins + */ + $mu_plugins = apply_filters( 'pngx-filter-system-info-mu-plugins', $mu_plugins ); + + return $mu_plugins; + } + + /** + * Determines the current operating system. + * Coding from WordPress Plugin revisr/classes/class-revisr-compatibility.php + * + * @access public + * @return array + */ + public function get_os() { + $os = array(); + $uname = php_uname( 's' ); + $os['code'] = strtoupper( substr( $uname, 0, 3 ) ); + $os['name'] = $uname; + + return $os; + } + + /** + * Gets the user running this PHP process. + * Coding from WordPress Plugin revisr/classes/class-revisr-compatibility.php + * + * @access public + * @return string + */ + public function get_user() { + if ( function_exists( 'exec' ) ) { + return exec( 'whoami' ); + } + + return __( 'Unknown', 'plugin-engine' ); + } + + /** + * Tries to guess the install path to the provided program. + * Coding from WordPress Plugin revisr/classes/class-revisr-compatibility.php + * + * @access public + * + * @param string $program The program to check for. + * + * @return string + */ + public function guess_path( $program ) { + $os = $this->get_os(); + $program = $this->escapeshellarg( $program ); + + if ( $os['code'] !== 'WIN' ) { + $path = exec( "which $program" ); + } else { + $path = exec( "where $program" ); + } + + if ( $path ) { + return $path; + } else { + return __( 'Not Found', 'plugin-engine' ); + } + } + + /** + * Escapes a shell arguement. + * Coding from WordPress Plugin revisr/classes/class-revisr-admin.php + * + * @access public + * + * @param string $string The string to escape. + * + * @return string $string The escaped string. + */ + public function escapeshellarg( $string ) { + $os = $this->get_os(); + if ( 'WIN' !== $os['code'] ) { + return escapeshellarg( $string ); + } else { + // Windows-friendly workaround. + return '"' . str_replace( "'", "'\\''", $string ) . '"'; + } + } + + /****************** SINGLETON GUTS ******************/ + + /** + * Enforce Singleton Pattern + */ + private static $instance; + + + public static function getInstance() { + if ( null == self::$instance ) { + $instance = new self; + self::$instance = $instance; + } + + return self::$instance; + } + } + + +} diff --git a/src/Pngx/Allowed_Tags.php b/src/Pngx/Allowed_Tags.php index 4df49cf..9c8caf8 100644 --- a/src/Pngx/Allowed_Tags.php +++ b/src/Pngx/Allowed_Tags.php @@ -1,48 +1,48 @@ -
    '; - - return $terms_tags; - - } - - /* - * Allowed Tags for content - */ - public static function content() { - - $terms_tags = '