Plugin Directory

Changeset 2136908


Ignore:
Timestamp:
08/09/2019 11:24:48 AM (7 years ago)
Author:
KestutisIT
Message:

EFAQ 6.1.8

  • Minor HTML improvements.
  • Segregated core and plugin language files.
  • Global plugin lang path issue fixed.
  • Improved language file.
  • Improved language text.
  • License line text patched.
  • Duplicating demo UID check added to demos observer.
  • CSS class naming improved.
Location:
expandable-faq/trunk
Files:
1 added
25 edited

Legend:

Unmodified
Added
Removed
  • expandable-faq/trunk/Controllers/Admin/NetworkMenuController.php

    r2127378 r2136908  
    3939        // For admins only - update_plugins are official WordPress role for updates
    4040        add_menu_page(
    41             $this->lang->getText('LANG_MENU_EXPANDABLE_FAQ_TEXT'), $this->lang->getText('LANG_MENU_EXPANDABLE_FAQ_TEXT'),
     41            $this->lang->getText('PLUGIN_NAME'), $this->lang->getText('PLUGIN_NAME'),
    4242            "update_plugins", "{$urlPrefix}network-menu", array($this, "printNetworkStatus"), $iconURL, $validMenuPosition
    4343        );
  • expandable-faq/trunk/Controllers/Admin/SingleMenuController.php

    r2130108 r2136908  
    5151        // For those, who have 'update_plugins' rights - update_plugins are official WordPress role for updates
    5252        add_menu_page(
    53             $this->lang->getText('LANG_MENU_EXPANDABLE_FAQ_TEXT'), $this->lang->getText('LANG_MENU_EXPANDABLE_FAQ_TEXT'),
     53            $this->lang->getText('PLUGIN_NAME'), $this->lang->getText('PLUGIN_NAME'),
    5454            "update_plugins", "{$urlPrefix}single-menu", array($this, "printSingleStatus"), $iconURL, $validMenuPosition
    5555        );
     
    7373        // For those, who have 'view_{$pluginPrefix}partner_earnings' rights
    7474        add_menu_page(
    75             $this->lang->getText('LANG_MENU_EXPANDABLE_FAQ_TEXT'), $this->lang->getText('LANG_MENU_EXPANDABLE_FAQ_TEXT'),
     75            $this->lang->getText('PLUGIN_NAME'), $this->lang->getText('PLUGIN_NAME'),
    7676            "view_{$pluginPrefix}all_faqs", "{$urlPrefix}single-menu", array($this, "printFAQ_Manager"), $iconURL, $validMenuPosition
    7777        );
  • expandable-faq/trunk/Controllers/MainController.php

    r2126843 r2136908  
    591591
    592592                    $lang = new \ExpandableFAQ\Models\Language\Language(
    593                         $conf->getTextDomain(), $conf->getGlobalLangPath(), $conf->getLocalLangPath(), get_locale(), FALSE
     593                        $conf->getTextDomain(), $conf->getGlobalPluginLangPath(), $conf->getLocalLangPath(), get_locale(), FALSE
    594594                    );
    595595
     
    10151015            // See 2: https://ulrich.pogson.ch/load-theme-plugin-translations
    10161016            // wp-content/languages/<PLUGIN_FOLDER_NAME>/lt_LT.mo
    1017             load_textdomain($this->confWithoutRouting->getTextDomain(), $this->confWithoutRouting->getGlobalLangPath().$locale.'.mo');
     1017            load_textdomain($this->confWithoutRouting->getTextDomain(), $this->confWithoutRouting->getGlobalPluginLangPath().$locale.'.mo');
    10181018            // wp-content/plugins/ExpandableFAQ/Languages/<EXT_FOLDER_NAME>/lt_LT.mo
    10191019            load_plugin_textdomain($this->confWithoutRouting->getTextDomain(), FALSE, $this->confWithoutRouting->getLocalLangRelPath());
    10201020
    10211021            $this->lang = new \ExpandableFAQ\Models\Language\Language(
    1022                 $this->confWithoutRouting->getTextDomain(), $this->confWithoutRouting->getGlobalLangPath(), $this->confWithoutRouting->getLocalLangPath(), $locale, FALSE
     1022                $this->confWithoutRouting->getTextDomain(), $this->confWithoutRouting->getGlobalPluginLangPath(), $this->confWithoutRouting->getLocalLangPath(), $locale, FALSE
    10231023            );
    10241024        }
  • expandable-faq/trunk/ExpandableFAQ.php

    r2130108 r2136908  
    44 * Plugin URI: https://wordpress.org/plugins/expandable-faq/
    55 * Description: It’s a high quality, native and responsive WordPress plugin to create and view F.A.Q.'s
    6  * Version: 6.1.7
     6 * Version: 6.1.8
    77 * Author: KestutisIT
    88 * Author URI: https://profiles.wordpress.org/KestutisIT
     
    4444        const REQUIRED_WP_VERSION = 4.6;
    4545        const OLDEST_COMPATIBLE_PLUGIN_SEMVER = '6.0.0';
    46         const PLUGIN_SEMVER = '6.1.7';
     46        const PLUGIN_SEMVER = '6.1.8';
    4747
    4848        // Settings
  • expandable-faq/trunk/Languages/en_US.php

    r2129243 r2136908  
    33 * Unicode Common Locale Data Repository (CLDR) Language-Specific File
    44 * @Language - English
    5  * @Author - Kestutis Matuliauskas
     5 * @Author - KestutisIT
    66 * @E-mail - info@hackathon.lt
    77 * @Website - https://profiles.wordpress.org/KestutisIT
    88 */
    99return array(
    10     // Settings
    11     'RTL' => FALSE,
    12     'LANG_SUFFIX' => '', /* I.e. if 'RTL' is used, it will load 'SliderArrowRTL.jpg' image file instead of 'SliderArrow.jpg' */
    13     'LOCALE_LANG' => 'en_US',
    14     'DATATABLES_LANG' => 'English',
    15 
    16     // Global
    17     'LANG_ID_TEXT' => 'ID',
    18     'LANG_ID2_TEXT' => 'Id',
    19     'LANG_S_ID_S_TEXT' => '%s (ID: %s)',
    20     'LANG_CODE_TEXT' => 'Code',
    21     'LANG_PREVIOUS_TEXT' => 'Previous', // Used mostly in sliders
    22     'LANG_NEXT_TEXT' => 'Next', // Used mostly in sliders
    23     'LANG_NA_TEXT' => 'N/A',
    24     'LANG_NOT_APPLICABLE_TEXT' => 'Not Applicable',
    25     'LANG_NOT_APPLICABLE2_TEXT' => 'Not applicable', // Uppercase lowercase
    26     'LANG_NOT_ASSIGNED_TEXT' => 'Not Assigned',
    27     'LANG_NOT_ASSIGNED2_TEXT' => 'Not assigned', // Uppercase lowercase
    28     'LANG_NONE_TEXT' => 'None',
    29     'LANG_NOT_SET_TEXT' => 'Not Set',
    30     'LANG_NOT_SET2_TEXT' => 'Not set', // Uppercase lowercase
    31     'LANG_DOES_NOT_EXIST_TEXT' => 'Not exist',
    32     'LANG_EXIST_TEXT' => 'Exist',
    33     'LANG_NOT_REQ_TEXT' => 'Not req.',
    34     'LANG_REQ_TEXT' => 'Req.',
    35     'LANG_NOT_REQUIRED_TEXT' => 'Not required',
    36     'LANG_REQUIRED_TEXT' => 'Required',
    37     'LANG_AVAILABLE_TEXT' => 'Available',
    38     'LANG_VISIBLE_TEXT' => 'Visible',
    39     'LANG_HIDDEN_TEXT' => 'Hidden',
    40     'LANG_ENABLED_TEXT' => 'Enabled',
    41     'LANG_DISABLED_TEXT' => 'Disabled',
    42     'LANG_WITHOUT_TRANSLATION_TEXT' => 'Without translation',
    43     'LANG_ANY_TEXT' => 'Any',
    44     'LANG_ALL_TEXT' => 'All',
    45     'LANG_OR_TEXT' => 'Or',
    46     'LANG_AND_TEXT' => 'and',
    47     'LANG_YES_TEXT' => 'Yes',
    48     'LANG_YES_ID_S_TEXT' => 'Yes (ID: %s)',
    49     'LANG_NO_TEXT' => 'No',
    50     'LANG_NO_ID_S_TEXT' => 'No (ID: %s)',
    51     'LANG_ALWAYS_TEXT' => 'Always',
    52     'LANG_NEVER_TEXT' => 'Never',
    53     'LANG_CHECK_TEXT' => 'Check',
    54     'LANG_SKIP_TEXT' => 'Skip',
    55     'LANG_FIND_TEXT' => 'Find',
    56     'LANG_ADD_TEXT' => 'Add',
    57     'LANG_OTHER_TEXT' => 'Other',
    58     'LANG_LIST_ORDER_TEXT' => 'Order',
    59     'LANG_LIST_ORDER_BY_TEXT' => 'Order By',
    60     'LANG_LIST_ORDER_BY_SELECT_TEXT' => 'Order By:',
    61     'LANG_LIST_ORDER_BY_SELECT2_TEXT' => '- Order By -',
    62     'LANG_POSITION_TEXT' => 'Position',
    63     'LANG_POS_TEXT' => 'Pos.',
    64     'LANG_ACTIONS_TEXT' => 'Actions',
    65     'LANG_SAVE_TEXT' => 'Save',
    66     'LANG_EDIT_TEXT' => 'Edit',
    67     'LANG_DELETE_TEXT' => 'Delete',
    68     'LANG_UPDATE_TEXT' => 'Update',
    69     'LANG_BACK_TEXT' => 'Back',
    70     'LANG_CONTINUE_TEXT' => 'Continue',
    71     'LANG_CONFIRM_TEXT' => 'Confirm',
    72     'LANG_OPTIONAL_TEXT' => 'Optional',
    73     'LANG_OPTIONAL2_TEXT' => 'optional', // Lowercase
    74     'LANG_IMAGE_TEXT' => 'Image',
    75     'LANG_IMAGE_VIEW_TEXT' => 'View Image',
    76     'LANG_IMAGE_VIEW_DEMO_TEXT' => 'View Demo Image',
    77     'LANG_IMAGE_DELETE_TEXT' => 'Delete Image',
    78     'LANG_IMAGE_UNSET_DEMO_TEXT' => 'Unset Demo Image',
    79     'LANG_IMAGE_NONE_TEXT' => 'No Image',
    80     'LANG_NO_ERRORS_TEXT' => 'No errors',
    81     'LANG_UNKNOWN_TEXT' => 'Unknown',
    82     'LANG_UNKNOWN_ERROR_TEXT' => 'Unknown error.',
    83     'LANG_PLEASE_KEEP_IN_MIND_THAT_TEXT' => 'Please keep in mind that',
    84     'LANG_NOTICE_S_TEXT' => 'Notice: %s',
    85     'LANG_ERROR_IN_METHOD_TEXT' => 'Error in \'%s\' method: %s!',
    86 
    87     // OK / Error Messages - (Database) Update
    88     'LANG_DATABASE_UPDATE_PATCH_CLASS_S_DOES_NOT_EXIST_ERROR_TEXT' => 'Error: Patch class \'%s\' - does not exist!',
    89     'LANG_DATABASE_UPDATE_EARLY_STRUCTURE_ALTER_ERROR_TEXT' => 'Error on blog #%s: MySQL alter error for plugin early structure!',
    90     'LANG_DATABASE_UPDATE_EARLY_STRUCTURE_ALTERED_TEXT' => 'Completed on blog #%s: Plugin early structure has been altered successfully!',
    91     'LANG_DATABASE_UPDATE_LATE_STRUCTURE_ALTER_ERROR_TEXT' => 'Error on blog #%s: MySQL alter error for plugin late structure!',
    92     'LANG_DATABASE_UPDATE_LATE_STRUCTURE_ALTERED_TEXT' => 'Completed on blog #%s: Plugin late structure has been altered successfully!',
    93     'LANG_DATABASE_UPDATE_DATA_UPDATE_ERROR_TEXT' => 'Error on blog #%s: MySQL update error for plugin data!',
    94     'LANG_DATABASE_UPDATE_DATA_UPDATED_TEXT' => 'Completed on blog #%s: Plugin data has been updated successfully!',
    95     'LANG_DATABASE_UPDATE_QUERY_FAILED_FOR_TABLE_ERROR_TEXT' => 'Error on blog #%s: MySQL query could not be processed in \'%s\' table at counter #%s!',
    96     'LANG_DATABASE_UPDATE_ROLES_UPDATE_ERROR_TEXT' => 'Error on blog #%s: MySQL update error for plugin roles!',
    97     'LANG_DATABASE_UPDATE_ROLES_UPDATED_TEXT' => 'Completed on blog #%s: Plugin roles has been updated successfully!',
    98     'LANG_DATABASE_UPDATE_CAPABILITIES_UPDATE_ERROR_TEXT' => 'Error on blog #%s: MySQL update error for plugin capabilities!',
    99     'LANG_DATABASE_UPDATE_CAPABILITIES_UPDATED_TEXT' => 'Completed on blog #%s: Plugin capabilities has been updated successfully!',
    100     'LANG_DATABASE_UPDATE_EARLY_STRUCTURE_PATCH_ERROR_TEXT' => 'Error on blog #%s: MySQL patch error for plugin early structure!',
    101     'LANG_DATABASE_UPDATE_EARLY_STRUCTURE_PATCHED_TEXT' => 'Completed on blog #%s: Plugin early structure has been patched successfully!',
    102     'LANG_DATABASE_UPDATE_LATE_STRUCTURE_PATCH_ERROR_TEXT' => 'Error on blog #%s: MySQL patch error for plugin late structure!',
    103     'LANG_DATABASE_UPDATE_LATE_STRUCTURE_PATCHED_TEXT' => 'Completed on blog #%s: Plugin late structure has been patched successfully!',
    104     'LANG_DATABASE_UPDATE_DATA_PATCH_ERROR_TEXT' => 'Error on blog #%s: MySQL update error for plugin data patch!',
    105     'LANG_DATABASE_UPDATE_DATA_PATCHED_TEXT' => 'Completed on blog #%s: Plugin data has been patched successfully!',
    106     'LANG_DATABASE_UPDATE_SEMANTIC_VERSION_UPDATE_ERROR_TEXT' => 'Error on blog #%s: MySQL update error for plugin database semantic version!',
    107     'LANG_DATABASE_UPDATE_SEMANTIC_VERSION_UPDATED_TEXT' => 'Completed on blog #%s: Plugin database semantic version has been updated to %s!',
    108 
    109     // Demos Observer
    110     'LANG_DEMOS_TEXT' => 'Demos',
    111     'LANG_DEMOS_SHORT_TEXT' => 'Demos',
    112 
    113     // Demo Element
    114     'LANG_DEMO_SELECT_TEXT' => ' --- Select Demo --- ',
    115     'LANG_DEMO_IMPORT_TEXT' => 'Import Demo',
    116     'LANG_DEMO_IMPORT_SHORT_TEXT' => 'Import',
    117     'LANG_DEMO_NOTE_ON_DATA_FLUSHING_TEXT' => 'By importing demo you will flush all your existing data of this plugin.',
    118     'LANG_DEMO_NOTE_ON_NO_AFFECT_TO_OTHER_CONTENT_TEXT' => 'Other website content, including pages content, won\'t be affected, so you still have to add the shortcodes by yourself.',
    119     'LANG_DEMO_NOTE_TO_HAVE_DATABASE_BACKUP_TEXT' => 'Make sure you have a latest database backup with you before importing a demo.',
    120 
    121     // OK / Error Messages - Demo Element
    122     'LANG_DEMO_IMPORTING_DIALOG_TEXT' => 'Are you sure? This will flush all the content of plugin you have!',
    123     'LANG_DEMO_SQL_FILE_DOES_NOT_EXIST_OR_IS_NOT_READABLE_TEXT' => 'Error: Demo SQL file does not exists or is not readable!',
    124     'LANG_DEMO_INSERTION_ERROR_TEXT' => 'Error: MySQL insert error in demo data import!',
    125     'LANG_DEMO_INSERTED_TEXT' => 'Completed: Demo data has been imported successfully!',
     10    // Plugin Settings
     11    'PLUGIN_NAME' => 'Expandable FAQ',
    12612
    12713    // FAQs Observer
     
    14531    'LANG_FAQ_DELETING_DIALOG_TEXT' => 'Do you really want to delete this question?',
    14632    'LANG_FAQ_DOES_NOT_EXIST_ERROR_TEXT' => 'Error: Selected question does not exist!',
     33    'LANG_FAQ_QUESTION_REQUIRED_ERROR_TEXT' => 'Error: Question is required!',
    14734    'LANG_FAQ_QUESTION_EXISTS_ERROR_TEXT' => 'Error: This question already exists in other F.A.Q.!',
     35    'LANG_FAQ_ANSWER_REQUIRED_ERROR_TEXT' => 'Error: Answer is required!',
    14836    'LANG_FAQ_UPDATE_ERROR_TEXT' => 'Error: MySQL update error for existing question!',
    14937    'LANG_FAQ_UPDATED_TEXT' => 'Completed: Question has been updated successfully!',
     
    15341    'LANG_FAQ_DELETION_ERROR_TEXT' => 'Error: MySQL delete error for existing question. No rows were deleted from database!',
    15442    'LANG_FAQ_DELETED_TEXT' => 'Completed: Question has been deleted successfully!',
    155 
    156     // Install Element
    157     'LANG_INSTALL_TEXT' => 'Install',
    158 
    159     // OK / Error Messages - Install Element
    160     'LANG_INSTALL_INSERTION_ERROR_TEXT' => 'Error on blog #%s: MySQL insert error in new installation!',
    161     'LANG_INSTALL_INSERTED_TEXT' => 'Completed on blog #%s: Installation data has been inserted successfully!',
    162     'LANG_INSTALL_REPLACE_ERROR_TEXT' => 'Error on blog #%s: MySQL replace error for installation data!',
    163     'LANG_INSTALL_REPLACED_TEXT' => 'Completed on blog #%s: Installation data has been replaced successfully!',
    16443
    16544    // Manuals Observer
     
    17554    'LANG_MANUAL_TUTORIAL_HOW_TO_OVERRIDE_UI_TEXT' => 'Tutorial - How to Override User Interface (UI)',
    17655
    177     // Menu Element
    178     'LANG_MENU_EXPANDABLE_FAQ_TEXT' => 'Expandable FAQ',
    179     'LANG_MENU_INVENTORY_TEXT' => 'Expandable FAQ Inventory',
    180     'LANG_MENU_INVENTORY_SHORT_TEXT' => 'FAQ Inventory',
    181 
    18256    // Settings Observer
    18357    'LANG_SETTINGS_TEXT' => 'Settings',
     
    19266    'LANG_SETTINGS_NOTE_FOR_ASSETS_LOADING_PLACE_TEXT' => 'Loading assets from the other place, means that scripts/style/fonts/images will be loaded from the current or parent theme (if defined there), or from other plugin (if defined there).',
    19367    'LANG_SETTINGS_CHANGE_GLOBAL_SETTINGS_TEXT' => 'Change Global Settings',
    194     'LANG_SETTINGS_CHANGE_NOTIFICATION_SETTINGS_TEXT' => 'Change Notification Settings',
    19568    'LANG_SETTINGS_UPDATE_GLOBAL_SETTINGS_TEXT' => 'Update global settings',
    19669
     
    20881    'LANG_SETTING_SLUG_UPDATED_TEXT' => 'Completed: Slug has been updated successfully!',
    20982    'LANG_SETTING_REGISTERED_TEXT' => 'Setting registered for translation',
    210 
    211     // Status Element
    212     'LANG_STATUS_TEXT' => 'Status',
    213     'LANG_STATUS_NETWORK_TEXT' => 'Network Status',
    214     'LANG_STATUS_SYSTEM_TEXT' => 'Expandable FAQ Status',
    215     'LANG_STATUS_NETWORK_ENABLED_TEXT' => 'Network enabled',
    216     'LANG_STATUS_DATABASE_MIN_VERSION_TEXT' => 'Plugin database min. version',
    217     'LANG_STATUS_DATABASE_VERSION_TEXT' => 'Plugin database version',
    218     'LANG_STATUS_INSTALLED_VERSION_TEXT' => 'Installed plugin version',
    219     'LANG_STATUS_MINOR_UPDATE_AVAILABLE_TEXT' => 'Minor plugin update available!',
    220     'LANG_STATUS_MAJOR_UPGRADE_AVAILABLE_TEXT' => 'Major plugin upgrade available!',
    221     'LANG_STATUS_NEWEST_EXISTING_VERSION_TEXT' => 'Newest-existing version',
    222     'LANG_STATUS_NEWEST_VERSION_AVAILABLE_TEXT' => 'Newest version available',
    223     'LANG_STATUS_YOU_HAVE_S_NO_UPDATE_AVAILABLE_TEXT' => 'You have %s. No update available.',
    224     'LANG_STATUS_THE_NEWEST_VERSION_TEXT' => 'the newest plugin version',
    225     'LANG_STATUS_UPDATE_FOLLOW_STEPS_TEXT' => 'To update the plugin, follow these steps',
    226     'LANG_STATUS_UPDATE_STEP_MAKE_A_COPY_TEXT' => 'Always make a copy of your database before doing any update',
    227     'LANG_STATUS_UPDATE_STEP_DOWNLOAD_NEW_VERSION_TEXT' => 'Download the new version',
    228     'LANG_STATUS_UPDATE_STEP_UPLOAD_VIA_FTP_TEXT' => 'If your server does not support file overriding, remove the old plugin folder via FTP (do not uninstall it, just remove the folder)',
    229     'LANG_STATUS_UPDATE_STEP_UPLOAD_NEW_VERSION_TEXT' => 'Upload the new plugin version',
    230     'LANG_STATUS_UPDATE_STEP_ACTIVATE_NEW_VERSION_TEXT' => 'Activate new plugin version',
    231     'LANG_STATUS_UPDATE_STEP_CLICK_UPDATE_TEXT' => 'Go back to "Expandable FAQ -> Status" page and click [Update] button - it will update the plugin\'s database tables',
    232     'LANG_STATUS_UPDATE_STEP_DONE_TEXT' => 'That\'s it',
    233     'LANG_STATUS_GO_TO_NETWORK_ADMIN_TEXT' => 'To check for updates of network-enabled plugin, go to "Expandable FAQ -> Status" menu item, located in WordPress Network Admin.',
    234     'LANG_STATUS_NOTE_FOR_POSSIBLY_NOT_IMPORTED_DATA_TEXT' => 'Note: You may also see this message, because you did not yet imported plugin\'s data to this exact blog. To do that, go to your current blog\'s plugin list, and click "Import Data" below the plugin\'s name.',
    235     'LANG_STATUS_NETWORK_NOTE_FOR_POSSIBLY_NOT_IMPORTED_DATA_TEXT' => 'Note: You may also see this message, because it might be that there is zero blog\'s in your network that has the plugin\'s data imported. To import it, go to any of your blog\'s plugin list, and click "Import Data" below the plugin\'s name.',
    236     'LANG_STATUS_SYSTEM_READY_FOR_UPDATE_TEXT' => 'Expandable FAQ is ready for update',
    237     'LANG_STATUS_SYSTEM_READY_FOR_UPGRADE_TEXT' => 'Expandable FAQ is ready for upgrade',
    238     'LANG_STATUS_UPDATE_TO_NEXT_VERSION_TEXT' => 'Update plugin to the next version',
    239     'LANG_STATUS_UPGRADE_TO_NEXT_VERSION_TEXT' => 'Upgrade plugin to the next version',
    240 
    241     // OK / Error Messages - Status Element
    242     'LANG_STATUS_NOT_LOCALLY_ENABLED_OR_DB_UPDATE_IN_PROGRESS_ERROR_TEXT' => 'Error: Plugin is not locally-enabled, or database update is in progress.',
    243     'LANG_STATUS_NOT_NETWORK_ENABLED_OR_DB_UPDATE_IN_PROGRESS_ERROR_TEXT' => 'Error: Plugin is not network-enabled, or database update is in progress.',
    244     'LANG_STATUS_UPDATE_NOT_ALLOWED_ERROR_TEXT' => 'Failed: You are not allowed to update. You either already updated the plugin,
    245 or you have plugin version older than 6.0.0 (in that case please install 6.0.0 plugin version first).',
    246     'LANG_STATUS_UPGRADE_NOT_ALLOWED_ERROR_TEXT' => 'Failed: You are not allowed to upgrade. You either already upgraded the plugin,
    247 or you have plugin version older than 6.0.0 (in that case please install 6.0.0 plugin version first).',
    248 
    249     // Tables Observer
    250     'LANG_TABLES_TEXT' => 'Tables',
    251 
    252     // Table Element
    253     'LANG_TABLE_TEXT' => 'Table',
    254 
    255     // OK / Error Messages - Table Element
    256     'LANG_TABLE_QUERY_FAILED_FOR_TABLE_ERROR_TEXT' => 'Error on blog #%s: MySQL query could not be processed for \'%s\' table!',
    257     'LANG_TABLE_QUERY_FAILED_FOR_PLUGIN_TABLE_CREATE_ERROR_TEXT' => 'Error on blog #%s: MySQL plugin table creation query could not be processed for \'%s\' table!',
    258     'LANG_TABLE_QUERY_FAILED_FOR_PLUGIN_TABLE_DROP_ERROR_TEXT' => 'Error on blog #%s: MySQL plugin table drop query could not be processed for tables:\'%s\'!',
    259     'LANG_TABLE_QUERY_FAILED_FOR_WP_TABLE_INSERTION_ERROR_TEXT' => 'Error on blog #%s: MySQL WordPress table insert query could not be processed for \'%s\' table!',
    260     'LANG_TABLE_QUERY_FAILED_FOR_PLUGIN_TABLE_INSERTION_ERROR_TEXT' => 'Error on blog #%s: MySQL plugin table insert query could not be processed in \'%s\' table!',
    261     'LANG_TABLE_QUERY_FAILED_FOR_WP_TABLE_REPLACE_ERROR_TEXT' => 'Error on blog #%s: MySQL WordPress table replace query could not be processed in \'%s\' table!',
    262     'LANG_TABLE_QUERY_FAILED_FOR_PLUGIN_TABLE_REPLACE_ERROR_TEXT' => 'Error on blog #%s: MySQL plugin table replace query could not be processed in \'%s\' table!',
    263     'LANG_TABLE_QUERY_FAILED_FOR_WP_TABLE_DELETION_ERROR_TEXT' => 'Error on blog #%s: MySQL WordPress delete table content query could not be processed in \'%s\' table!',
    264     'LANG_TABLE_QUERY_FAILED_FOR_PLUGIN_TABLE_DELETION_ERROR_TEXT' => 'Error on blog #%s: MySQL plugin delete table content query could not be processed for \'%s\' table!',
    265 
    266     // Template Exceptions
    267     'LANG_TEMPLATE_CANNOT_BIND_VARIABLE_ERROR_TEXT' => 'Cannot bind variable named \'templateFile\'.',
    268     'LANG_TEMPLATE_NOT_EXIST_ERROR_TEXT' => 'Template file %s does not exist.',
    26983);
  • expandable-faq/trunk/Models/Configuration/Configuration.php

    r2129243 r2136908  
    2929    private $pluginURL_Prefix                   = "";
    3030    private $pluginCSS_Prefix                   = "";
     31    private $galleryFolderName                  = "";
     32    private $globalGalleryPath                  = "";
     33    private $globalGalleryPathWithoutEndSlash   = "";
     34    private $globalGalleryURL                   = "";
    3135    private $themeUI_FolderName                 = "";
    3236    private $pluginName                         = "";
     
    4751    private $localLangPath                      = "";
    4852    private $globalLangPath                     = "";
     53    private $globalPluginLangPath               = "";
    4954    private $localLangRelPath                   = "";
    5055
     
    207212        $wpLangDir = str_replace(array('/', '\\'), array(DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR),WP_LANG_DIR);
    208213        $this->globalLangPath = $wpLangDir.DIRECTORY_SEPARATOR;
     214        $this->globalPluginLangPath = $wpLangDir.DIRECTORY_SEPARATOR.$this->pluginFolderName.DIRECTORY_SEPARATOR;
    209215
    210216
     
    237243            echo "<br />[Configuration] Local Lang Path: {$this->localLangPath}\n";
    238244            echo "<br />[Configuration] Global Lang Path: {$this->globalLangPath}\n";
     245            echo "<br />[Configuration] Global Plugin Lang Path: {$this->globalPluginLangPath}\n";
    239246            echo "<br />[Configuration] Local Lang Rel Path: {$this->localLangRelPath}\n";
    240247            echo "<br />[Configuration] Plugin URL: {$this->pluginURL}\n";
     
    483490    }
    484491
     492    public function getGlobalPluginLangPath()
     493    {
     494        return $this->globalPluginLangPath;
     495    }
     496
    485497    /**
    486498     * localLangRelPath used for load_textdomain (without slash at the end), i.e. ExpandableFAQ/Languages/Common
  • expandable-faq/trunk/Models/Configuration/ConfigurationInterface.php

    r2129243 r2136908  
    8585    public function getLocalLangPath();
    8686    public function getGlobalLangPath();
     87    public function getGlobalPluginLangPath();
    8788    public function getLocalLangRelPath();
    8889
  • expandable-faq/trunk/Models/FAQ/FAQ.php

    r2129243 r2136908  
    106106        }
    107107
     108        if($validFAQ_Question == "")
     109        {
     110            // F.A.Q. question is required
     111            $ok = FALSE;
     112            $this->errorMessages[] = $this->lang->getText('LANG_FAQ_QUESTION_REQUIRED_ERROR_TEXT');
     113        }
     114
    108115        // Search for existing F.A.Q. question
    109116        $faqQuestionExistsQuery = "
     
    120127        }
    121128
     129        if($validFAQ_Answer == "")
     130        {
     131            // F.A.Q. answer is required
     132            $ok = FALSE;
     133            $this->errorMessages[] = $this->lang->getText('LANG_FAQ_ANSWER_REQUIRED_ERROR_TEXT');
     134        }
     135
    122136        if($validFAQ_Id > 0 && $ok)
    123137        {
  • expandable-faq/trunk/Models/Import/DemosObserver.php

    r2129243 r2136908  
    6060
    6161        $retDemos = array();
     62        $uniqueDemoIds = array();
    6263        foreach ($phpFiles AS $phpFile)
    6364        {
     
    7980                $validFileNameWithPath = $validFilePath . $validFileName;
    8081
    81                 $retDemos[] = array(
    82                     "demo_id" => $validDemoId,
    83                     "demo_name" => $validDemoName,
    84                     "demo_enabled" => $validDemoEnabled,
    85                     "file_path" => $validFilePath,
    86                     "file_name" => $validFileName,
    87                     "file_name_with_path" => $validFileNameWithPath,
    88                 );
     82                if(!in_array($validDemoId, $uniqueDemoIds))
     83                {
     84                    // Add demo to stack
     85                    $retDemos[] = array(
     86                        "demo_id" => $validDemoId,
     87                        "demo_name" => $validDemoName,
     88                        "demo_enabled" => $validDemoEnabled,
     89                        "file_path" => $validFilePath,
     90                        "file_name" => $validFileName,
     91                        "file_name_with_path" => $validFileNameWithPath,
     92                    );
     93
     94                    // Add unique demo ID to stack
     95                    $uniqueDemoIds[] = $validDemoId;
     96                }
    8997            }
    9098
     
    92100            if($this->debugMode == 2)
    93101            {
    94                 echo "<br /><br />\$phpDemoData: " . nl2br(print_r($phpDemoData, TRUE));
     102                echo "<br /><br />\$phpDemoData: ".nl2br(print_r($phpDemoData, TRUE));
    95103                echo "<br /><br />File: {$phpFile['file_name']}";
    96104                echo "<br />\$firstPhpDemoPos: {$firstPhpDemoPos} === 0";
    97105                echo "<br />\$lastPhpPos: {$lastPhpPos} === \$requiredPhpPos: {$requiredPhpPos}";
     106                echo "<br />\$uniqueDemoIds: ".print_r($uniqueDemoIds, TRUE);
    98107            }
    99108        }
  • expandable-faq/trunk/Models/Language/Language.php

    r2129479 r2136908  
    1818    const LANG_ERROR_LANGUAGE_KEY_S_DO_NOT_EXIST_TEXT = 'Error: Language key %s do not exist!';
    1919    const LANG_ERROR_UNABLE_TO_LOAD_LANGUAGE_FILE_TEXT = 'Unable to load %s language file from none of it&#39;s 2 paths.';
     20    private $coreLocale = "en_US";
    2021    private $locale = "en_US";
    2122    private $lang = array();
     
    3132    /**
    3233     * @param string $paramTextDomain
    33      * @param string $paramGlobalLangPath
     34     * @param string $paramGlobalPluginLangPath
    3435     * @param string $paramLocalLangPath
    3536     * @param string $paramLocale
     
    3738     * @throws \Exception
    3839     */
    39     public function __construct($paramTextDomain, $paramGlobalLangPath, $paramLocalLangPath, $paramLocale = "en_US", $paramStrictLocale = FALSE)
    40     {
    41         $this->setLocale($paramGlobalLangPath, $paramLocalLangPath, $paramLocale, $paramStrictLocale);
     40    public function __construct($paramTextDomain, $paramGlobalPluginLangPath, $paramLocalLangPath, $paramLocale = "en_US", $paramStrictLocale = FALSE)
     41    {
     42        $this->setCoreLocale($paramGlobalPluginLangPath, $paramLocalLangPath, $paramLocale, $paramStrictLocale);
     43        $this->setLocale($paramGlobalPluginLangPath, $paramLocalLangPath, $paramLocale, $paramStrictLocale);
    4244        $this->setTranslate($paramTextDomain);
    4345    }
    4446
    4547    /**
    46      * Load locale file
    47      * @param string $paramGlobalLangPath
     48     * Load core locale file
     49     * @param string $paramGlobalPluginLangPath
    4850     * @param string $paramLocalLangPath
    4951     * @param string $paramLocale
     
    5153     * @throws \Exception
    5254     */
    53     private function setLocale($paramGlobalLangPath, $paramLocalLangPath, $paramLocale = "en_US", $paramStrictLocale = FALSE)
    54     {
    55         $validGlobalLangPath = sanitize_text_field($paramGlobalLangPath);
     55    private function setCoreLocale($paramGlobalPluginLangPath, $paramLocalLangPath, $paramLocale = "en_US", $paramStrictLocale = FALSE)
     56    {
     57        $validGlobalPluginLangPath = sanitize_text_field($paramGlobalPluginLangPath);
     58        $validLocalLangPath = sanitize_text_field($paramLocalLangPath);
     59        $validCoreLocale = !is_array($paramLocale) ? preg_replace('[^-_0-9a-zA-Z]', '', $paramLocale) : 'en_US';
     60
     61        // If the locale mode is NOT strict, and 'lt_LT.php' file does not exist
     62        // neither in /wp-content/languages/<PLUGIN_FOLDER_NAME>/,
     63        // nor in /wp-content/plugins/<PLUGIN_FOLDER_NAME>/Languages/ folders
     64        if(
     65            $paramStrictLocale === FALSE &&
     66            is_readable($validGlobalPluginLangPath.'core-'.$validCoreLocale.'.php') === FALSE &&
     67            is_readable($validLocalLangPath.'core-'.$validCoreLocale.'.php') === FALSE
     68        )
     69        {
     70            // then set language default to en_US (with en_US.php as a corresponding file)
     71            $validCoreLocale = "en_US";
     72        }
     73
     74        // Set core locale
     75        if($validGlobalPluginLangPath != "SKIP" && is_readable($validGlobalPluginLangPath.'core-'.$validCoreLocale.'.php'))
     76        {
     77            // Set used core locale
     78            $this->coreLocale = $validCoreLocale;
     79
     80            // Include the Unicode CLDR core language file
     81            $unicodeCLRD_FileToInclude = $validGlobalPluginLangPath.'core-'.$validCoreLocale.'.php';
     82            $lang = include $unicodeCLRD_FileToInclude;
     83        } else if($validLocalLangPath != "SKIP" && is_readable($validLocalLangPath.'core-'.$validCoreLocale.'.php'))
     84        {
     85            // Set used core locale
     86            $this->coreLocale = $validCoreLocale;
     87
     88            // Include the Unicode CLDR core language file
     89            $unicodeCLRD_FileToInclude = $validLocalLangPath.'core-'.$validCoreLocale.'.php';
     90            $lang = include $unicodeCLRD_FileToInclude;
     91        } else
     92        {
     93            // Set used core locale
     94            $this->coreLocale = "";
     95
     96            // Language file is not readable - do not include the language file
     97            throw new \Exception(sprintf(static::LANG_ERROR_UNABLE_TO_LOAD_LANGUAGE_FILE_TEXT, 'core-'.$validCoreLocale));
     98        }
     99
     100        // NOTE: This might be a system slowing-down process
     101        if(sizeof($lang) > 0)
     102        {
     103            foreach($lang AS $key => $value)
     104            {
     105                $this->addText($key, $value);
     106            }
     107        }
     108    }
     109
     110    /**
     111     * @return string
     112     */
     113    public function getCoreLocale()
     114    {
     115        return $this->coreLocale;
     116    }
     117
     118    /**
     119     * Load locale file
     120     * @param string $paramGlobalPluginLangPath
     121     * @param string $paramLocalLangPath
     122     * @param string $paramLocale
     123     * @param bool $paramStrictLocale
     124     * @throws \Exception
     125     */
     126    private function setLocale($paramGlobalPluginLangPath, $paramLocalLangPath, $paramLocale = "en_US", $paramStrictLocale = FALSE)
     127    {
     128        $validGlobalPluginLangPath = sanitize_text_field($paramGlobalPluginLangPath);
    56129        $validLocalLangPath = sanitize_text_field($paramLocalLangPath);
    57130        $validLocale = !is_array($paramLocale) ? preg_replace('[^-_0-9a-zA-Z]', '', $paramLocale) : 'en_US';
    58131
    59132        // If the locale mode is NOT strict, and 'lt_LT.php' file does not exist
    60         // neither in /wp-content/languages/<EXT_FOLDER_NAME>/,
    61         // nor in /wp-content/plugins/ExpandableFAQ/Languages/<EXT_FOLDER_NAME>/ folders
     133        // neither in /wp-content/languages/<PLUGIN_FOLDER_NAME>/,
     134        // nor in /wp-content/plugins/<PLUGIN_FOLDER_NAME>/Languages/ folders
    62135        if(
    63136            $paramStrictLocale === FALSE &&
    64             is_readable($validGlobalLangPath.$validLocale.'.php') === FALSE &&
     137            is_readable($validGlobalPluginLangPath.$validLocale.'.php') === FALSE &&
    65138            is_readable($validLocalLangPath.$validLocale.'.php') === FALSE
    66139        )
     
    70143        }
    71144
    72         if($validGlobalLangPath != "SKIP" && is_readable($validGlobalLangPath.$validLocale.'.php'))
    73         {
    74             // Set used system locale
     145        // Set locale
     146        if($validGlobalPluginLangPath != "SKIP" && is_readable($validGlobalPluginLangPath.$validLocale.'.php'))
     147        {
     148            // Set used locale
    75149            $this->locale = $validLocale;
    76150
    77151            // Include the Unicode CLDR language file
    78             $unicodeCLRDFileToInclude = $validGlobalLangPath.$validLocale.'.php';
    79             $lang = include $unicodeCLRDFileToInclude;
     152            $unicodeCLRD_FileToInclude = $validGlobalPluginLangPath.$validLocale.'.php';
     153            $lang = include $unicodeCLRD_FileToInclude;
    80154        } else if($validLocalLangPath != "SKIP" && is_readable($validLocalLangPath.$validLocale.'.php'))
    81155        {
    82             // Set used system locale
     156            // Set used locale
    83157            $this->locale = $validLocale;
    84158
    85159            // Include the Unicode CLDR language file
    86             $this->locale = $validLocale;
    87             $unicodeCLRDFileToInclude = $validLocalLangPath.$validLocale.'.php';
    88             $lang = include $unicodeCLRDFileToInclude;
     160            $unicodeCLRD_FileToInclude = $validLocalLangPath.$validLocale.'.php';
     161            $lang = include $unicodeCLRD_FileToInclude;
    89162        } else
    90163        {
    91             // Set used system locale
     164            // Set used locale
    92165            $this->locale = "";
    93166
     
    404477     * @return false|string
    405478     */
    406     public function getTranslatedUrl($paramPostId)
     479    public function getTranslatedURL($paramPostId)
    407480    {
    408481        if($this->WMPLEnabled)
  • expandable-faq/trunk/Models/Language/LanguageInterface.php

    r2129479 r2136908  
    1414    /**
    1515     * @param string $paramTextDomain
    16      * @param string $paramGlobalLangPath
     16     * @param string $paramGlobalPluginLangPath
    1717     * @param string $paramLocalLangPath
    1818     * @param string $paramLocale
     
    2020     * @throws \Exception
    2121     */
    22     public function __construct($paramTextDomain, $paramGlobalLangPath, $paramLocalLangPath, $paramLocale = "en_US", $paramStrictLocale = FALSE);
     22    public function __construct($paramTextDomain, $paramGlobalPluginLangPath, $paramLocalLangPath, $paramLocale = "en_US", $paramStrictLocale = FALSE);
     23
     24    /**
     25     * @return string
     26     */
     27    public function getCoreLocale();
    2328
    2429    /**
     
    8893    public function register($paramKey, $paramValue);
    8994    public function getTranslated($paramKey, $paramNonTranslatedValue);
    90     public function getTranslatedUrl($paramPostId);
     95    public function getTranslatedURL($paramPostId);
    9196}
  • expandable-faq/trunk/Models/Update/NetworkPatchesObserver.php

    r2126726 r2136908  
    108108
    109109                $lang = new Language(
    110                     $this->conf->getTextDomain(), $this->conf->getGlobalLangPath(), $this->conf->getLocalLangPath(), $this->conf->getBlogLocale($blogId), FALSE
     110                    $this->conf->getTextDomain(), $this->conf->getGlobalPluginLangPath(), $this->conf->getLocalLangPath(), $this->conf->getBlogLocale($blogId), FALSE
    111111                );
    112112
  • expandable-faq/trunk/Models/Update/NetworkUpdatesObserver.php

    r2127378 r2136908  
    8989
    9090            $lang = new Language(
    91                 $this->conf->getTextDomain(), $this->conf->getGlobalLangPath(), $this->conf->getLocalLangPath(), get_locale()
     91                $this->conf->getTextDomain(), $this->conf->getGlobalPluginLangPath(), $this->conf->getLocalLangPath(), get_locale()
    9292            );
    9393
  • expandable-faq/trunk/Models/Update/Patches61Z.php

    r2130108 r2136908  
    1818    const CURRENT_MAJOR = 6; // Positive integer [X]
    1919    const CURRENT_MINOR = 1; // Positive integer [Y]
    20     const LATEST_PATCH = 7; // Positive integer [Z]
     20    const LATEST_PATCH = 8; // Positive integer [Z]
    2121    const LATEST_RELEASE = ''; // String
    2222    const LATEST_BUILD_METADATA = ''; // String
  • expandable-faq/trunk/UI/SQLs/CarRentalAgencyCrimsonRedDemoSQL.php

    r2129672 r2136908  
    55 * @author      Kestutis Matuliauskas
    66 * @copyright   Kestutis Matuliauskas
    7  * @License     @license See Legal/License.txt for details.
     7 * @license     MIT License. See Legal/License.txt for details.
    88 *
    99 * @expandable-faq-plugin-demo
  • expandable-faq/trunk/UI/SQLs/CarRentalAgencySolidBlackDemoSQL.php

    r2133421 r2136908  
    55 * @author      Kestutis Matuliauskas
    66 * @copyright   Kestutis Matuliauskas
    7  * @License     @license See Legal/License.txt for details.
     7 * @license     MIT License. See Legal/License.txt for details.
    88 *
    99 * @expandable-faq-plugin-demo
  • expandable-faq/trunk/UI/SQLs/CarRentalAgencySteelBlueDemoSQL.php

    r2133421 r2136908  
    55 * @author      Kestutis Matuliauskas
    66 * @copyright   Kestutis Matuliauskas
    7  * @License     @license See Legal/License.txt for details.
     7 * @license     MIT License. See Legal/License.txt for details.
    88 *
    99 * @expandable-faq-plugin-demo
  • expandable-faq/trunk/UI/SQLs/InstallSQL.php

    r2018356 r2136908  
    66 * @author      Kestutis Matuliauskas
    77 * @copyright   Kestutis Matuliauskas
    8  * @License     @license See Legal/License.txt for details.
     8 * @license     MIT License. See Legal/License.txt for details.
    99 */
    1010defined( 'ABSPATH' ) or die( 'No script kiddies, please!' );
  • expandable-faq/trunk/UI/SQLs/ResetSQL.php

    r2018356 r2136908  
    99 * @author      Kestutis Matuliauskas
    1010 * @copyright   Kestutis Matuliauskas
    11  * @License     @license See Legal/License.txt for details.
     11 * @license     MIT License. See Legal/License.txt for details.
    1212 */
    1313defined( 'ABSPATH' ) or die( 'No script kiddies, please!' );
  • expandable-faq/trunk/UI/SQLs/Shared/CarRentalAgencySQLPartial.php

    r1952081 r2136908  
    66// NOTE: 'faq_id' does not matter here and can be set automatically
    77$arrPluginReplaceSQL['faqs'] = "(`faq_question`, `faq_answer`, `faq_order`, `blog_id`) VALUES
    8 ('Are the vehicles insured?', 'Yes, all our vehicles have mandatory Civil and CASCO insurances.', 1, [BLOG_ID]),
     8('Are the vehicles insured?', 'Yes, all our vehicles have mandatory Civilian & KASKO insurances.', 1, [BLOG_ID]),
    99('What are the methods of payment for the car rental services?', 'You can pay by cash, PayPal or by bank transfer.', 2, [BLOG_ID]),
    1010('How do I rent a car?', 'You can rent a car by simply clicking on the Reservation button in the menu or by calling +1 450 610 0990. If you choose to reserve a car online, we will contact you to confirm your reservation.', 3, [BLOG_ID]),
  • expandable-faq/trunk/UI/Templates/Admin/Status/Shared/NetworkStatusPartial.php

    r2126726 r2136908  
    33?>
    44<h1>
    5     <span><?=esc_html($lang['LANG_STATUS_SYSTEM_TEXT']);?></span>
     5    <span><?=esc_html(sprintf($lang['LANG_STATUS_S_PLUGIN_TEXT'], $lang['PLUGIN_NAME']));?></span>
    66</h1>
    77<form name="status_form" action="<?=esc_url($statusTabFormAction);?>" method="POST" class="status-form">
     
    2727                <li><?=esc_html($lang['LANG_STATUS_UPDATE_STEP_UPLOAD_NEW_VERSION_TEXT']);?>,</li>
    2828                <li><?=esc_html($lang['LANG_STATUS_UPDATE_STEP_ACTIVATE_NEW_VERSION_TEXT']);?>,</li>
    29                 <li><?=esc_html($lang['LANG_STATUS_UPDATE_STEP_CLICK_UPDATE_TEXT']);?>,</li>
     29                <li><?=esc_html(sprintf($lang['LANG_STATUS_UPDATE_STEP_S_CLICK_UPDATE_TEXT'], $lang['PLUGIN_NAME']));?>,</li>
    3030                <li><?=esc_html($lang['LANG_STATUS_UPDATE_STEP_DONE_TEXT']);?>.</li>
    3131            </ol>
     
    4040        <?php if($canMajorlyUpgrade): ?>
    4141            <div style="padding-bottom: 20px;" class="big-text">
    42                 <strong><?=esc_html($lang['LANG_STATUS_SYSTEM_READY_FOR_UPGRADE_TEXT']);?></strong>
     42                <strong><?=esc_html(sprintf($lang['LANG_STATUS_S_READY_FOR_UPGRADE_TEXT'], $lang['PLUGIN_NAME']));?></strong>
    4343            </div>
    4444            <div style="text-align: center;" class="big-text">
     
    4747        <?php elseif($canUpdate): ?>
    4848            <div style="padding-bottom: 20px;" class="big-text">
    49                 <strong><?=esc_html($lang['LANG_STATUS_SYSTEM_READY_FOR_UPDATE_TEXT']);?></strong>
     49                <strong><?=esc_html(sprintf($lang['LANG_STATUS_S_READY_FOR_UPDATE_TEXT'], $lang['PLUGIN_NAME']));?></strong>
    5050            </div>
    5151            <div style="text-align: center" class="big-text">
  • expandable-faq/trunk/UI/Templates/Admin/Status/Shared/SingleStatusPartial.php

    r2126726 r2136908  
    33?>
    44<h1>
    5     <span><?=esc_html($lang['LANG_STATUS_SYSTEM_TEXT']);?></span>
     5    <span><?=esc_html(sprintf($lang['LANG_STATUS_S_PLUGIN_TEXT'], $lang['PLUGIN_NAME']));?></span>
    66</h1>
    77<form name="status_form" action="<?=esc_url($statusTabFormAction);?>" method="POST" class="status-form">
     
    2727                <li><?=esc_html($lang['LANG_STATUS_UPDATE_STEP_UPLOAD_NEW_VERSION_TEXT']);?>,</li>
    2828                <li><?=esc_html($lang['LANG_STATUS_UPDATE_STEP_ACTIVATE_NEW_VERSION_TEXT']);?>,</li>
    29                 <li><?=esc_html($lang['LANG_STATUS_UPDATE_STEP_CLICK_UPDATE_TEXT']);?>,</li>
     29                <li><?=esc_html(sprintf($lang['LANG_STATUS_UPDATE_STEP_S_CLICK_UPDATE_TEXT'], $lang['PLUGIN_NAME']));?>,</li>
    3030                <li><?=esc_html($lang['LANG_STATUS_UPDATE_STEP_DONE_TEXT']);?>.</li>
    3131            </ol>
     
    4040        <?php if($canMajorlyUpgrade): ?>
    4141            <div style="padding-bottom: 20px;" class="big-text">
    42                 <strong><?=esc_html($lang['LANG_STATUS_SYSTEM_READY_FOR_UPGRADE_TEXT']);?></strong>
     42                <strong><?=esc_html(sprintf($lang['LANG_STATUS_S_READY_FOR_UPGRADE_TEXT'], $lang['PLUGIN_NAME']));?></strong>
    4343            </div>
    4444            <div style="text-align: center;" class="big-text">
     
    4747        <?php elseif($canUpdate): ?>
    4848            <div style="padding-bottom: 20px;" class="big-text">
    49                 <strong><?=esc_html($lang['LANG_STATUS_SYSTEM_READY_FOR_UPDATE_TEXT']);?></strong>
     49                <strong><?=esc_html(sprintf($lang['LANG_STATUS_S_READY_FOR_UPDATE_TEXT'], $lang['PLUGIN_NAME']));?></strong>
    5050            </div>
    5151            <div style="text-align: center" class="big-text">
  • expandable-faq/trunk/UI/Templates/Admin/Status/Shared/StatusGoToNetworkPartial.php

    r2126726 r2136908  
    33?>
    44<h1>
    5     <span><?=esc_html($lang['LANG_STATUS_SYSTEM_TEXT']);?></span>
     5    <span><?=esc_html(sprintf($lang['LANG_STATUS_S_PLUGIN_TEXT'], $lang['PLUGIN_NAME']));?></span>
    66</h1>
    77<div style="padding-bottom: 20px;" class="big-text">
     
    1111</div>
    1212<div>
    13     <?=esc_html($lang['LANG_STATUS_GO_TO_NETWORK_ADMIN_TEXT']);?><br />
     13    <?=esc_html(sprintf($lang['LANG_STATUS_GO_TO_S_NETWORK_ADMIN_TEXT'], $lang['PLUGIN_NAME']));?><br />
    1414    <br />
    1515    <?=esc_html($lang['LANG_STATUS_NOTE_FOR_POSSIBLY_NOT_IMPORTED_DATA_TEXT']);?>
  • expandable-faq/trunk/UI/Templates/Front/FAQsList.php

    r2126726 r2136908  
    2323            <?php endforeach; ?>
    2424        </dl>
    25     <?php else:?>
     25    <?php else: ?>
    2626        <div class="no-faqs-available"><?=esc_html($lang['LANG_FAQS_NONE_AVAILABLE_TEXT']);?></div>
    2727    <?php endif; ?>
  • expandable-faq/trunk/readme.txt

    r2130108 r2136908  
    3636**Seventh** - it has nice user experience - it's has a default design, it does allow you to have more than one F.A.Q. item open at the same time - so it don't have that annoying `accordion` feature.
    3737
    38 **But the most important** is that this plugin is and always be **ads-free**. I personally really hate these **freemium**, **ads-full** or **tracking** plugins which makes majority of the plugins on w.org plugins directly (and, actually, many of premium marketplaces). So this is the key features we always maintain:
     38**But the most important** is that this plugin is and always be **ads-free**. I personally really hate these **freemium**, **ads-full** or **tracking** plugins which makes majority of the plugins on w.org plugins directory (and, actually, many of premium marketplaces). So this is the key features we always maintain:
    39391. Never track your data (nor even by putting some kind of GDPR-compliance agreement checkbox, like `Error Log Monitor` plugin),
    40402. Never make it pseudo-ads-full (even such a big plugins like `WooCommerce` or `Contact Form 7` has nearly 80% of their home screen or 20% of their main buttons about `how to install \ buy other plugins`
     
    100100
    101101== Changelog ==
     102
     103= 6.1.8 =
     104* Minor HTML improvements.
     105* Segregated core and plugin language files.
     106* Global plugin lang path issue fixed.
     107* Improved language file.
     108* Improved language text.
     109* License line text patched.
     110* Duplicating demo UID check added to demos observer.
     111* CSS class naming improved.
    102112
    103113= 6.1.7 =
Note: See TracChangeset for help on using the changeset viewer.