Index: trunk/kernel/action.php =================================================================== diff -u -N -r850 -r869 --- trunk/kernel/action.php (.../action.php) (revision 850) +++ trunk/kernel/action.php (.../action.php) (revision 869) @@ -464,6 +464,7 @@ case "m_user_addto_group": if($ro_perm) break; + $objSession->SetVariable("HasChanges", 1); $user = $_POST["UserId"]; if(is_numeric($user)) { @@ -489,6 +490,7 @@ case "m_group_add_user": if($ro_perm) break; + $objSession->SetVariable("HasChanges", 1); $group = $_POST["GroupId"]; $EditGroups = new clsGroupList(); $EditGroups->SourceTable = $objSession->GetEditTable($objGroups->SourceTable); @@ -507,6 +509,7 @@ break; case "m_group_removeuser": if($ro_perm) break; + $objSession->SetVariable("HasChanges", 1); $group = $_POST["GroupId"]; $g = $objGroups->GetItem($group); if($group>0) @@ -520,6 +523,7 @@ break; case "m_user_removegroup": if($ro_perm) break; + $objSession->SetVariable("HasChanges", 1); $user = $_POST["UserId"]; if($user>0) { @@ -1215,6 +1219,7 @@ case "m_template_edit": if($ro_perm) break; + $objSession->SetVariable("HasChanges", 1); $ThemeId = $_POST["ThemeId"]; $FileId = $_POST["FileId"]; $f = new clsThemeFile($FileId); @@ -1226,6 +1231,7 @@ break; case "m_template_add": if($ro_perm) break; + $objSession->SetVariable("HasChanges", 1); $ThemeId = $_POST["ThemeId"]; if( !is_object($f) ) $f = new clsThemeFile(); @@ -1265,6 +1271,7 @@ break; case "m_template_delete": if($ro_perm) break; + $objSession->SetVariable("HasChanges", 1); $dummy = new clsThemeFile(); foreach($_POST["itemlist"] as $FileId) { @@ -1496,7 +1503,8 @@ } break; - case "m_phrase_edit": + case "m_phrase_edit": + $objSession->SetVariable("HasChanges", 1); $objPhraseList = new clsPhraseList(); if((int)$_POST["direct"] != 1) $objPhraseList->SourceTable = $objSession->GetEditTable("Phrase"); @@ -1561,6 +1569,7 @@ } break; case "m_phrase_delete": + $objSession->SetVariable("HasChanges", 1); if (isset($_POST["itemlist"])) { foreach($_POST["itemlist"] as $id) Index: trunk/kernel/include/itemdb.php =================================================================== diff -u -N -r842 -r869 --- trunk/kernel/include/itemdb.php (.../itemdb.php) (revision 842) +++ trunk/kernel/include/itemdb.php (.../itemdb.php) (revision 869) @@ -163,7 +163,7 @@ if( !$this->HasField($name[$i]) || ($this->Data[$name[$i]] != $value[$i])) { if ($_GET['new'] != 1) { - $this->DetectChanges($name, $value); + $this->DetectChanges($name[$i], $value[$value]); } $this->Data[$name[$i]] = $value[$i]; $this->m_dirtyFieldsMap[$name[$i]] = $value[$i]; @@ -308,6 +308,10 @@ return false; } + if ($objSession->GetVariable("HasChanges") == 2) { + $objSession->SetVariable("HasChanges", 1); + } + /* if ($this->adodbConnection->Affected_Rows() > 0) { $objSession->SetVariable("HasChanges", 1); }*/ @@ -383,9 +387,11 @@ //print_pre($_POST); //echo "$name: $value
"; if ($this->Data[$name] != $value && !strstr($name, 'Modif') && !strstr($name, 'Created')) { - //echo "$name Modified ".$this->Data[$name]." $value
"; - if (!strstr($name, 'Hot') && !strstr($name, 'Pop')) { - $objSession->SetVariable("HasChanges", 1); + //echo "$name Modified tt ".$this->Data[$name]." tt $value
"; + if (!strstr($name, 'Hot') && !strstr($name, 'Pop') && !strstr($name, "Id") && !strstr($name, "ItemType")) { + if ($objSession->GetVariable("HasChanges") != 1) { + $objSession->SetVariable("HasChanges", 2); + } } } } @@ -412,9 +418,13 @@ $this->SetUniqueId($this->adodbConnection->Insert_ID()); + if ($objSession->GetVariable("HasChanges") == 2) { + $objSession->SetVariable("HasChanges", 1); + } + /*if ($this->adodbConnection->Affected_Rows() > 0) { $objSession->SetVariable("HasChanges", 1); - } */ + } */ return true; }