Index: trunk/kernel/include/category.php
===================================================================
diff -u -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 -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"];