Index: trunk/admin/install.php =================================================================== diff -u -r282 -r283 --- trunk/admin/install.php (.../install.php) (revision 282) +++ trunk/admin/install.php (.../install.php) (revision 283) @@ -517,8 +517,7 @@ $tmp1 = 0; $tmp2 = 0; while ($file = $dir->read()) { - if ($file != "." && $file != ".." && !is_dir($dir_name.$file)) - { + if ($file != "." && $file != ".." && !is_dir($dir_name.$file)) { if (strstr($file, 'inportal_upgrade_v')) { $file_tmp = str_replace("inportal_upgrade_v", "", $file); $file_tmp = str_replace(".sql", "", $file); @@ -540,29 +539,8 @@ } } //$tmp2 = $tmp1; + } } - - -/* $version_nrs = explode(".", $new_version); - - for ($i = 0; $i < $version_nrs[0] + 1; $i++) { - for ($j = 0; $j < $version_nrs[1] + 1; $j++) { - for ($k = 0; $k < $version_nrs[2] + 1; $k++) { - $try_version = "$i.$j.$k"; - - if (str_replace('.', '', $try_version) > str_replace('.', '', $current_version)) { - $filename = $pathtoroot.$mod_name."/admin/install/upgrades/inportal_upgrade_v$try_version.sql"; - //echo "Trying Version: $try_version
"; - if(file_exists($filename)) - { - RunSQLFile($ado, $filename); - set_ini_value("Module Versions", $p, $try_version); - save_values(); - } - } - } - } - }*/ } $state = 'languagepack_upgrade'; Index: trunk/kernel/include/language.php =================================================================== diff -u -r271 -r283 --- trunk/kernel/include/language.php (.../language.php) (revision 271) +++ trunk/kernel/include/language.php (.../language.php) (revision 283) @@ -120,22 +120,6 @@ $edit_table = $objSession->GetEditTable($this->SourceTable); - $sql = "SELECT l.PhraseId AS pid FROM ".GetTablePrefix()."Phrase AS l LEFT JOIN $edit_table AS e ON e.PhraseId = l.PhraseId WHERE e.PhraseId IS NULL ORDER BY l.PhraseId"; - $rs = $this->adodbConnection->Execute($sql); - - $ids = ''; - while ($rs && !$rs->EOF) { - $ids .= $rs->fields['pid'].','; - $rs->MoveNext(); - } - - $ids = substr($ids, 0, strlen($ids) - 1); - - if (strlen($ids) > 0) { - $sql = "DELETE FROM ".GetTablePrefix()."Phrase WHERE PhraseId IN (".$ids.")"; - $this->adodbConnection->Execute($sql); - } - //$idlist = array(); $sql = "SELECT * FROM $edit_table"; @@ -145,7 +129,7 @@ { $data = $rs->fields; $c = $this->AddItemFromArray($data); - $c->Dirty(); + $c->Dirty(); if($data["PhraseId"]>0) { $c->Update(); @@ -158,8 +142,13 @@ } $rs->MoveNext(); - } + } + // Phrases deleted from temporary table are marked with LanguageId = 0, when saving we need to actually delete them all + // The idea was taken from Images edit by Kostja + $sql = "DELETE FROM ".$this->SourceTable." WHERE LanguageId = 0"; + $this->adodbConnection->Execute($sql); + if((int)$_GLOBALS["debuglevel"]) echo $sql."
\n"; $this->adodbConnection->Execute($sql); Index: trunk/admin/config/config_lang.php =================================================================== diff -u -r271 -r283 --- trunk/admin/config/config_lang.php (.../config_lang.php) (revision 271) +++ trunk/admin/config/config_lang.php (.../config_lang.php) (revision 283) @@ -154,7 +154,7 @@ $where = ""; $order = trim($objConfig->Get("Lang_LV_Sortfield")." ".$objConfig->Get("Lang_LV_Sortorder")); -$sql = "SELECT l.*,ELT(l.Enabled+1,'".prompt_language("la_Text_Disabled")."','".prompt_language("la_Text_Enabled")."') as Status "; +$sql = "SELECT l.*,ELT(l.Enabled+1,'".admin_language("la_Text_Disabled")."','".admin_language("la_Text_Enabled")."') as Status "; $sql .= "FROM ".GetTablePrefix()."Language as l "; if(strlen($where)) $sql .= "WHERE ".$where." "; Index: trunk/kernel/action.php =================================================================== diff -u -r278 -r283 --- trunk/kernel/action.php (.../action.php) (revision 278) +++ trunk/kernel/action.php (.../action.php) (revision 283) @@ -1321,13 +1321,13 @@ } break; case "m_phrase_delete": - $objPhraseList = new clsPhraseList(); - $objPhraseList->SourceTable = $objSession->GetEditTable("Phrase"); if (isset($_POST["itemlist"])) { foreach($_POST["itemlist"] as $id) { - $objPhraseList->DeletePhrase($id); + $sql = "UPDATE ".$objSession->GetEditTable("Phrase")." SET LanguageId = 0 WHERE PhraseId = ".$id; + $ado = GetADODBConnection(); + $ado->Execute($sql); } } unset($objPhraseList);