Index: trunk/kernel/include/category.php =================================================================== diff -u -N -r4120 -r4121 --- trunk/kernel/include/category.php (.../category.php) (revision 4120) +++ trunk/kernel/include/category.php (.../category.php) (revision 4121) @@ -2071,7 +2071,7 @@ { global $objSession; - $fields_hash['CreatedById'] = $objSession->Get('UserId'); + $fields_hash['CreatedById'] = $objSession->Get('PortalUserId'); $d = new clsCategory(NULL); $fields_hash['Filename'] = $d->StripDisallowed($fields_hash['Filename']); @@ -2136,17 +2136,16 @@ return $d; } - function &Edit_Category($CategoryId, $Name, $Description, $CreatedOn, $EditorsPick, $Status, $Hot, - $NewItem, $Pop, $Priority, $MetaKeywords,$MetaDesc, $auto_filename = 1, $filename = '') + function &Edit_Category($category_id, $fields_hash) { - $d =& $this->GetCategory($CategoryId); + $d =& $this->GetCategory($category_id); - $filename = $d->StripDisallowed($filename); - $d->Set( Array( 'Name', 'Description', 'CreatedOn', 'EditorsPick', 'Status', 'HotItem', - 'NewItem', 'PopItem', 'Priority', 'MetaKeywords','MetaDescription', - 'AutomaticFilename', 'Filename'), - Array( $Name, $Description, $CreatedOn, $EditorsPick, $Status, $Hot, $NewItem, - $Pop, $Priority, $MetaKeywords,$MetaDesc, $auto_filename, $filename) ); + $fields_hash['Filename'] = $d->StripDisallowed($fields_hash['Filename']); + + foreach ($fields_hash as $field_name => $field_value) { + $d->Set($field_name, $field_value); + } + $d->Update(); $d->UpdateCachedPath(); return $d; Index: trunk/kernel/action.php =================================================================== diff -u -N -r4077 -r4121 --- trunk/kernel/action.php (.../action.php) (revision 4077) +++ trunk/kernel/action.php (.../action.php) (revision 4121) @@ -126,31 +126,7 @@ ); $u =& $objEditItems->Add_User_NEW($fields_hash); - - $objCustomEdit = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData")); - $objCustomEdit->SetTable('edit'); - $objCustomEdit->LoadResource($u->Get("ResourceId")); - $CustomFields = new clsCustomFieldList(6); - $DataChanged = FALSE; - foreach($_POST as $key=>$value) - { - if(substr($key,0,1)=="_") - { - $field = substr($key,1); - $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - - if(is_object($cvalue)) - { - $objCustomEdit->SetFieldValue($cvalue->Get("CustomFieldId"),$u->Get("ResourceId"),$value); - $DataChanged = TRUE; - } - } - } - if ($DataChanged) { - $objCustomEdit->SaveData('u', $u->Get('ResourceId')); - } - - $objCustomEdit->SetTable('live'); + saveCustomFields('u', $u->Get('ResourceId'), 6); } break; @@ -189,34 +165,7 @@ 'dob' => $dob, ); $u =& $objEditItems->Edit_User_NEW($UserId, $fields_hash); - - $objCustomEdit = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData")); - $objCustomEdit->SetTable('edit'); - $DataChanged = false; - - $objCustomEdit->LoadResource($u->Get("ResourceId")); - $CustomFields = new clsCustomFieldList(6); - - foreach($_POST as $key=>$value) - { - if(substr($key,0,1)=="_") - { - $field = substr($key,1); - $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - - if(is_object($cvalue)) - { - //echo "Saving CF: (".$cvalue->Get("CustomFieldId")." ; ".$u->Get("ResourceId")." ; $value)
"; - $objCustomEdit->SetFieldValue($cvalue->Get("CustomFieldId"),$u->Get("ResourceId"),$value); - $DataChanged = TRUE; - } - } - } - - if ($DataChanged) { - $objCustomEdit->SaveData('u', $u->Get('ResourceId')); - } - $objCustomEdit->SetTable('live'); + saveCustomFields('u', $u->Get('ResourceId'), 6); break; case "m_user_primarygroup": @@ -785,219 +734,102 @@ break; - case "m_add_category": - $application =& kApplication::Instance(); - $application->SetVar('c_mode', 't'); + case "m_add_category": + $application =& kApplication::Instance(); + $application->SetVar('c_mode', 't'); - if (ValidDate($_POST['cat_date'], GetDateFormat(0, true))) { - $CreatedOn = DateTimestamp($_POST['cat_date'],GetDateFormat(0, true)); - } - else { - $CreatedOn = adodb_mktime(); - } - $html = (int)$_POST["html_enable"]; + $created_on = GetVar('cat_date'); + if (ValidDate($created_on, GetDateFormat(0, true))) { + $created_on = DateTimestamp($created_on, GetDateFormat(0, true)); + } + else { + $created_on = adodb_mktime(); + } - $cat_pick = GetVar('cat_pick'); - $Status = (int)$_POST["status"]; - $Hot=(int)$_POST["itemhot"]; - $Pop = (int)$_POST["itempop"]; - $New = (int)$_POST["itemnew"]; + $objEditItems = new clsCatList(); + $objEditItems->SourceTable = $objSession->GetEditTable("Category"); + + $fields_hash = Array( 'ParentId' => GetVar('ParentId'), + 'Name' => GetVar('cat_name'), + 'Description' => inp_escape(GetVar('cat_desc'), (int)$_POST["html_enable"]), + 'CreatedOn' => $created_on, + 'EditorsPick' => GetVar('cat_pick'), + 'Status' => (int)GetVar('status'), +// 'HotItem' => (int)GetVar('itemhot'), + 'NewItem' => (int)GetVar('itemnew'), +// 'PopItem' => (int)GetVar('itempop'), + 'Priority' => GetVar('Priority'), + 'MetaKeywords' => GetVar('meta_keywords'), + 'MetaDescription' => GetVar('meta_desc'), + 'AutomaticFilename' => GetVar('auto_filename'), + 'Filename' => GetVar('filename'), + 'CategoryTemplate' => GetVar('category_template'), + 'ItemTemplate' => GetVar('item_template'), + ); + + $cat =& $objEditItems->Add_NEW($fields_hash); + saveCustomFields('c', $cat->Get('ResourceId'), 1); + break; - $objEditItems = new clsCatList(); - $objEditItems->SourceTable = $objSession->GetEditTable("Category"); - $cat = $objEditItems->Add($_POST["ParentId"], $_POST["cat_name"], inp_escape($_POST["cat_desc"],$html), $CreatedOn, - $cat_pick, $Status, $Hot, $New, $Pop, $_POST["Priority"], - $_POST["meta_keywords"],$_POST["meta_desc"], GetVar('auto_filename'), GetVar('filename') ); - $objCustomEdit = new clsCustomDataList($objSession->GetEditTable("CustomMetaData")); - $objCustomEdit->LoadResource($cat->Get("ResourceId")); - $CustomFields = new clsCustomFieldList(1); - $DataChanged = FALSE; - foreach($_POST as $key=>$value) - { - if(substr($key,0,1)=="_") - { - $field = substr($key,1); - $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - - if(is_object($cvalue)) - { - $objCustomEdit->SetFieldValue($cvalue->Get("CustomFieldId"),$cat->Get("ResourceId"),$value); - $DataChanged = TRUE; - } - } - } - if ($DataChanged) { - $objCustomEdit->SaveData('c', $cat->Get('ResourceId')); - } - - break; - - case "m_edit_category": + case 'm_edit_category': $application =& kApplication::Instance(); $application->SetVar('c_mode', 't'); - - $CreatedOn = DateTimestamp($_POST["cat_date"],GetDateFormat(0, true)); - $cat_pick = GetVar('cat_pick'); - $Status = (int)$_POST["status"]; - $Hot = false; //(int)$_POST["itemhot"]; - $Pop = false; //(int)$_POST["itempop"]; - $New = (int)$_POST["itemnew"]; + + $objEditItems = new clsCatList(); + $objEditItems->SourceTable = $objSession->GetEditTable("Category"); - $html = (int)$_POST["html_enable"]; - $objEditItems = new clsCatList(); - $objEditItems->SourceTable = $objSession->GetEditTable("Category"); + // check if name of cat isn't changed: begin + if (GetVar('CategoryId') > 0) { + $original_cats = new clsCatList(); + $original_cat = $original_cats->GetItemByField('CategoryId', GetVar('CategoryId')); - // check if name of cat isn't changed: begin - if( GetVar('CategoryId') > 0 ) - { - $original_cats = new clsCatList(); - $original_cat = $original_cats->GetItemByField('CategoryId', GetVar('CategoryId')); - - $match_fields = Array('Name' => 'cat_name', 'Filename' => 'filename'); - foreach ($match_fields as $db_field => $submit_field) - { - if( $original_cat->Get($db_field) != stripslashes( GetVar($submit_field) ) ) - { - $objSession->SetVariable('PermCache_UpdateRequired', 1); - break; - } - } - - unset($original_cat, $original_cats); - } - else - { - $objSession->SetVariable('PermCache_UpdateRequired', 1); - } - // check if name of cat isn't changed: end - - $cat = $objEditItems->Edit_Category($_POST["CategoryId"],inp_escape($_POST["cat_name"],$html), inp_escape($_POST["cat_desc"],$html), $CreatedOn, $cat_pick, $Status, $Hot, $New, $Pop, $_POST["Priority"], $_POST["meta_keywords"], $_POST["meta_desc"], GetVar('auto_filename'), GetVar('filename') ); - - $objCustomEdit = new clsCustomDataList($objSession->GetEditTable("CustomMetaData")); - $objCustomEdit->LoadResource($cat->Get("ResourceId")); - $CustomFields = new clsCustomFieldList(1); - $DataChanged = FALSE; - foreach($_POST as $key=>$value) - { - if(substr($key,0,1)=="_") - { - $field = substr($key,1); - $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - - if(is_object($cvalue)) - { - $objCustomEdit->SetFieldValue($cvalue->Get("CustomFieldId"),$cat->Get("ResourceId"),$value); - $DataChanged = TRUE; - } - } - } - if ($DataChanged) { - $objCustomEdit->SaveData('c', $cat->Get('ResourceId')); - } - - break; + $match_fields = Array('Name' => 'cat_name', 'Filename' => 'filename'); + foreach ($match_fields as $db_field => $submit_field) { + if ($original_cat->Get($db_field) != stripslashes( GetVar($submit_field) )) { + $objSession->SetVariable('PermCache_UpdateRequired', 1); + break; + } + } + unset($original_cat, $original_cats); + } + else { + $objSession->SetVariable('PermCache_UpdateRequired', 1); + } + // check if name of cat isn't changed: end + + $fields_hash = Array( 'Name' => inp_escape(GetVar('cat_name'), (int)GetVar('html_enable')), + 'Description' => inp_escape(GetVar('cat_desc'), (int)GetVar('html_enable')), + 'CreatedOn' => DateTimestamp(GetVar('cat_date'), GetDateFormat(0, true)), + 'EditorsPick' => GetVar('cat_pick'), + 'Status' => (int)GetVar('status'), +// 'HotItem' => (int)GetVar('itemhot'), + 'NewItem' => (int)GetVar('itemnew'), +// 'PopItem' => (int)GetVar('itempop'), + 'Priority' => GetVar('Priority'), + 'MetaKeywords' => GetVar('meta_keywords'), + 'MetaDescription' => GetVar('meta_desc'), + 'AutomaticFilename' => GetVar('auto_filename'), + 'Filename' => GetVar('filename'), + 'CategoryTemplate' => GetVar('category_template'), + 'ItemTemplate' => GetVar('item_template'), + ); + + $cat =& $objEditItems->Edit_Category(GetVar('CategoryId'), $fields_hash); + saveCustomFields('c', $cat->Get('ResourceId'), 1); + break; + case "m_edit_custom_data": - $id = $_POST["ItemId"]; - - $objCustomEdit = new clsCustomDataList($objSession->GetEditTable("CustomMetaData")); - $objCustomEdit->LoadResource($id); - $CustomFields = new clsCustomFieldList($_POST['CustomType']); - $DataChanged = FALSE; - foreach($_POST as $key=>$value) - { - if(substr($key,0,1)=="_") - { - $field = substr($key,1); - $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - - if(is_object($cvalue)) - { - $objCustomEdit->SetFieldValue($cvalue->Get("CustomFieldId"),$id,$value); - $DataChanged = TRUE; - } - } - } - if ($DataChanged) { - $db =& GetADODBConnection(true); - $sql = 'SELECT Prefix - FROM '.TABLE_PREFIX.'ItemTypes - WHERE ItemType = '.GetVar('CustomType'); - $main_prefix = $db->GetOne($sql); - $application->SetVar($main_prefix.'_mode', 't'); - $objCustomEdit->SaveData($main_prefix, $id); - } -/* - $id = $_POST["ItemId"]; - $objEditData = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData")); - $objEditData->SetTable('edit'); - $ado = &GetADODBConnection(); - - if($id && is_array($_POST["CustomData"])) - { - foreach($_POST["CustomData"] as $FieldId => $Value) - { - $sql = "SELECT count(*) as reccount FROM ".$objEditData->SourceTable." WHERE CustomFieldId=$FieldId AND ResourceId=".$_POST["ItemId"]; - $rs = $ado->Execute($sql); - $intable = $rs->fields["reccount"]; - if(!$intable) - { - $sql = "INSERT INTO ".$objEditData->SourceTable." (ResourceId,CustomFieldId,Value) VALUES ('".$id."','$FieldId','$Value')"; - $ado->Execute($sql); - //echo $sql."
\n"; - } - else - { - $sql = "UPDATE ".$objEditData->SourceTable." SET Value='".$Value."' WHERE CustomFieldId=$FieldId AND ResourceId=".$_POST["ItemId"]; - $ado->Execute($sql); - //echo $sql."
\n"; - } - } - } - $objEditData->SetTable('live'); -*/ - break; - case "m_customfield_edit": - if($ro_perm) break; - $DataType = $_POST["DataType"]; - $FieldId = $_POST["CustomFieldId"]; - $FieldName = $_POST["fieldname"]; - //$FieldLabel = $_POST["fieldlabel"]; - if(strlen($FieldName)) - { - $objCustomFields = new clsCustomFieldList($DataType); - $objCustomFields->EditField($FieldId,$DataType,$FieldName,"",(int)$_POST["generaltab"], - $_POST["heading"],$_POST["fieldprompt"],$_POST["input_type"], - $_POST["valuelist"]); - } - unset($objCustomFields); - break; - case "m_customfield_add": - if($ro_perm) break; - $DataType = $_POST["DataType"]; - $FieldName = $_POST["fieldname"]; - //$FieldLabel = $_POST["fieldlabel"]; - if(strlen($FieldName)) - { - $objCustomFields = new clsCustomFieldList($DataType); - $objCustomFields->AddField($DataType,$FieldName,"",(int)$_POST["generaltab"], - $_POST["heading"],$_POST["fieldprompt"],$_POST["input_type"], - $_POST["valuelist"]); - unset($objCustomFields); - } - break; - case "m_customfield_delete": - if($ro_perm) break; - $DataType = $_POST["DataType"]; - $objCustomFields = new clsCustomFieldList($DataType); - - foreach($_POST["itemlist"] as $f) - { - $objCustomFields->DeleteField($f); - //$c = $objCustomFields->GetItem($f); - //$c->Delete(); - } - unset($objCustomFields); - break; + $resource_id = $_POST['ItemId']; + $db =& GetADODBConnection(true); + $sql = 'SELECT Prefix + FROM '.TABLE_PREFIX.'ItemTypes + WHERE ItemType = '.GetVar('CustomType'); + $main_prefix = $db->GetOne($sql); + $application->SetVar($main_prefix.'_mode', 't'); + + saveCustomFields($main_prefix, $resource_id, $_POST['CustomType']); + break; + case "m_SearchConfig_Edit": if($ro_perm) break; $SimpleValues = $_POST["simple"];