<?php use Supertext\Polylang\Helper\Constant; use Supertext\Polylang\Api\Multilang; use Supertext\Polylang\Api\Wrapper; use Comotive\Util\ArrayManipulation; /** @var Page $context */ $library = $context->getCore()->getLibrary(); $options = $library->getSettingOption(); $languageMap = isset($options[Constant::SETTING_LANGUAGE_MAP]) ? ArrayManipulation::forceArray($options[Constant::SETTING_LANGUAGE_MAP]) : array(); // Laod Languages from Polylang to match with supertext api $htmlLanguageDropdown = ''; // Create the language matcher dropdown foreach (Multilang::getLanguages() as $language) { // Get anonymous wrapper to get languages $api = Wrapper::getInstance(); $stMapping = $api->getLanguageMapping($language->slug); $languageDropdown = ''; foreach ($stMapping as $languageCode => $languageName) { $selected = ''; if (isset($languageMap[$language->slug]) && $languageMap[$language->slug] == $languageCode) { $selected = ' selected'; } $languageDropdown .= '<option value="' . $languageCode . '"' . $selected . '>' . $languageName . '</option>'; } $languageDropdown = ' <select name="sel_st_language_' . $language->slug . '" id="sel_st_language_' . $language->slug . '"> <option value="">' . __('Please select', 'polylang-supertext') . '...</option> ' . $languageDropdown . ' </select>'; $htmlLanguageDropdown .= '
/** * Saves user and language settings to options */ protected function saveUserAndLanguageSettings() { // Saving the user mappings $userMap = array(); foreach ($_POST['selStWpUsers'] as $key => $id) { if (intval($id) > 0) { $userMap[] = array('wpUser' => intval($_POST['selStWpUsers'][$key]), 'stUser' => $_POST['fieldStUser'][$key], 'stApi' => $_POST['fieldStApi'][$key]); } } // Crappily create the language array $languageMap = array(); foreach ($_POST as $postField => $stLanguage) { if (substr($postField, 0, strlen('sel_st_language_')) == 'sel_st_language_') { $language = substr($postField, strlen('sel_st_language_')); $languageMap[$language] = $stLanguage; } } // Put into the options $this->library->saveSetting(Constant::SETTING_USER_MAP, $userMap); $this->library->saveSetting(Constant::SETTING_LANGUAGE_MAP, $languageMap); // Set the plugin to working mode, if both arrays are saved if (count($userMap) > 0 && count($languageMap) == count(Multilang::getLanguages())) { $this->library->saveSetting(Constant::SETTING_WORKING, 1); } else { $this->library->saveSetting(Constant::SETTING_WORKING, 0); } }