<?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 .= '
 /**
  * Get an API wrapper as an authenticated user
  * @param int $userId
  * @return Wrapper prepared api wrapper
  */
 public function getUserWrapper($userId = 0)
 {
     // Get currently logged in user, if no user given
     if ($userId == 0) {
         $userId = get_current_user_id();
     }
     // Try to find credentials
     $userId = intval($userId);
     $credentials = $this->getUserCredentials($userId);
     // Get the ready to call instance
     return Wrapper::getInstance($credentials['stUser'], $credentials['stApi']);
 }