Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/ControllerPlugin/Language.php
<?php

namespace XF\ControllerPlugin;

use function
intval;

class
Language extends AbstractPlugin
{
    public function
getActiveLanguageId()
    {
       
$languageId = $this->request->getCookie('edit_language_id', null);
        if (
$languageId === null)
        {
           
$languageId = \XF::$developmentMode ? 0 : $this->options()->defaultLanguageId;
        }
       
$languageId = intval($languageId);

        if (
$languageId == 0 && !\XF::$developmentMode)
        {
           
$languageId = $this->options()->defaultLanguageId;
        }

        return
$languageId;
    }

   
/**
     * Gets the active editable language.
     *
     * @return \XF\Entity\Language
     */
   
public function getActiveEditLanguage()
    {
       
$languageId = $this->getActiveLanguageId();

        if (
$languageId == 0)
        {
           
/** @var \XF\Repository\Language $languageRepo */
           
$languageRepo = $this->repository('XF:Language');
           
$language = $languageRepo->getMasterLanguage();
        }
        else
        {
           
$language = $this->em()->find('XF:Language', $languageId);
        }

       
/** @var $language \XF\Entity\Language */
       
if (!$language || !$language->canEdit())
        {
           
$language = $this->em()->find('XF:Language', $this->options()->defaultLanguageId);
        }

        return
$language;
    }

   
/**
     * @param string $id
     * @param array|string|null $with
     * @param null|string $phraseKey
     *
     * @return \XF\Entity\Language
     */
   
public function assertLanguageExists($id, $with = null, $phraseKey = null)
    {
        if (
$id === 0 || $id === "0")
        {
           
/** @var \XF\Repository\Language $languageRepo */
           
$languageRepo = $this->repository('XF:Language');
            return
$languageRepo->getMasterLanguage();
        }

        return
$this->controller->assertRecordExists('XF:Language', $id, $with, $phraseKey);
    }
}