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);