function updateLanguageFiles($ini)
{
    $c = new manageconfig();
    $codes = array();
    $keys = array('language', 'language_de');
    $codes = getLangCodesByKeys($keys);
    $langcodes = getLangCodes();
    foreach ($langcodes as $code => $lid) {
        $ldat = explode('_', $code);
        if (isset($codes[$ldat[0]])) {
            $count = count($codes[$ldat[0]]);
            if (in_array('', $codes[$ldat[0]])) {
                $count--;
            }
        } else {
            $count = -1;
        }
        if (isset($codes[$ldat[0]]) && !empty($ldat[1]) && in_array($ldat[1], $codes[$ldat[0]])) {
            // Nehme Original
            $src = 'language_' . $code;
        } elseif (isset($codes[$ldat[0]]) && in_array('', $codes[$ldat[0]])) {
            // Nehme gleichen Langcode, aber ohne Countrycode
            $src = 'language_' . $ldat[0];
        } elseif (isset($codes[$ldat[0]]) && $count > 0) {
            // Nehme gleichen Langcode, aber falchen Countrycode
            $src = 'language_' . $ldat[0] . '_' . reset($codes[$ldat[0]]);
        } else {
            // Nehme Standard
            $src = 'language';
        }
        foreach ($ini as $file => $data) {
            if (!isset($data[$src])) {
                continue;
            }
            $c->getdata("language/{$lid}/{$file}.lng.php", 'lang');
            foreach ($data[$src] as $varname => $text) {
                if ($text === null) {
                    $c->delete($varname);
                } else {
                    $c->updateconfig($varname, str, $text);
                }
            }
            $c->savedata();
        }
    }
}
Exemplo n.º 2
0
         foreach ($lng_keys as $handler => $varnames) {
             foreach ($varnames as $varname) {
                 if (isset($plug[$src][$varname]) && ($handler == DO_UPD_ADD || $handler == DO_UPD_EQU)) {
                     $c->updateconfig($varname, str, $plug[$src][$varname]);
                 } else {
                     $c->delete($varname);
                 }
             }
         }
         $c->savedata();
     }
 } else {
     // Delete all phrases from old plugin
     if (count($old_plug['language']) > 0) {
         $keys = array_keys($old_plug);
         $codes = getLangCodesByKeys($keys);
         $langcodes = getLangCodes();
         foreach ($langcodes as $lid) {
             $c->getdata("language/{$lid}/modules.lng.php", 'lang');
             foreach ($old_plug['language'] as $varname => $text) {
                 $c->delete($varname);
             }
             $c->savedata();
         }
     }
 }
 $diff = array_diff_all(isset($plug['php']) ? $plug['php'] : array(), isset($old_plug['php']) ? $old_plug['php'] : array(), true);
 if (count_diff_all($diff) > 0) {
     $result = $db->query("SELECT position, id FROM {$db->pre}plugins WHERE module = '{$packageid}'");
     $plugs = array();
     while ($row = $db->fetch_assoc($result)) {