Пример #1
0
 /**
  * @param \eZLocale $primaryLanguage
  * @param \eZLocale[]|null $allLanguages
  * @param bool $canUseUnicode
  * @return array
  */
 function findAppropriateCharsetsList($primaryLanguage, $allLanguages, $canUseUnicode)
 {
     $commonCharsets = array();
     if (is_array($allLanguages) and count($allLanguages) > 0) {
         $language = $allLanguages[0];
         $charsets = $language->allowedCharsets();
         foreach ($charsets as $charset) {
             $commonCharsets[] = eZCharsetInfo::realCharsetCode($charset);
         }
         $commonCharsets = array_unique($commonCharsets);
         for ($i = 1; $i < count($allLanguages); ++$i) {
             $language = $allLanguages[$i];
             $charsets = $language->allowedCharsets();
             $realCharsets = array();
             foreach ($charsets as $charset) {
                 $realCharsets[] = eZCharsetInfo::realCharsetCode($charset);
             }
             $realCharsets = array_unique($realCharsets);
             $commonCharsets = array_intersect($commonCharsets, $realCharsets);
         }
     }
     $usableCharsets = array_values($commonCharsets);
     if (count($usableCharsets) > 0) {
         if (in_array($primaryLanguage->charset(), $usableCharsets)) {
             array_unshift($usableCharsets, $primaryLanguage->charset());
             $usableCharsets = array_unique($usableCharsets);
         }
     } else {
         if ($canUseUnicode) {
             $usableCharsets[] = eZCharsetInfo::realCharsetCode('utf-8');
         }
     }
     return $usableCharsets;
 }