Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Service/Phrase/Group.php
<?php

namespace XF\Service\Phrase;

class
Group extends \XF\Service\AbstractService
{
    public function
getAllPhraseGroups()
    {
        return
$this->db()->fetchAllColumn("
            SELECT DISTINCT phrase_group
            FROM xf_phrase_map
            WHERE phrase_group IS NOT NULL
        "
);
    }

    public function
compileAllPhraseGroups()
    {
        foreach (
$this->getAllPhraseGroups() AS $group)
        {
           
$this->compilePhraseGroup($group);
        }
    }

    public function
compilePhraseGroup($group)
    {
       
$languageIds = array_keys($this->app['language.all']);
       
$languageIds[] = 0;

       
$base = 'code-cache://phrase_groups';

        foreach (
$languageIds AS $languageId)
        {
           
$phrases = $this->db()->fetchPairs("
                SELECT map.title, phrase.phrase_text
                FROM xf_phrase_map AS map
                INNER JOIN xf_phrase AS phrase ON (map.phrase_id = phrase.phrase_id)
                WHERE map.language_id = ?
                    AND map.phrase_group = ?
            "
, [$languageId, $group]);

           
$path = "$base/l$languageId/$group.php";

            if (
$phrases)
            {
               
ksort($phrases);
               
$output = "<?php\nreturn " . var_export($phrases, true) . ';';
                \
XF\Util\File::writeToAbstractedPath($path, $output);
            }
            else
            {
                \
XF\Util\File::deleteFromAbstractedPath($path);
            }
        }
    }
}