Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sun, Jul 20, 6:32 AM

in-portal

Index: trunk/kernel/include/custommetadata.php
===================================================================
--- trunk/kernel/include/custommetadata.php (revision 4815)
+++ trunk/kernel/include/custommetadata.php (revision 4816)
@@ -1,175 +1,172 @@
<?php
class clsCustomMetaData extends clsItem
{
// var $m_CustomDataId;
// var $m_ResourceId;
// var $m_CustomFieldId;
// var $m_Value;
var $FieldName;
function clsCustomMetaData($CustomDataId=-1,$table="CustomMetaData")
{
parent::clsItem();
$this->tablename=GetTablePrefix()."CustomMetaData";
$this->type=12;
$this->BasePermission="";
$this->id_field = "CustomDataId";
$this->NoResourceId=1; //set this to avoid using a resource ID
}
}
class clsCustomDataList extends clsItemCollection
{
function clsCustomDataList()
{
parent::clsItemCollection();
$this->classname = 'clsCustomMetaData';
}
function LoadResource($ResourceId)
{
// TO REMOVE
}
function DeleteResource($ResourceId, $main_prefix)
{
if (!$ResourceId) return false;
$custom_table = $this->Application->getUnitOption($main_prefix.'-cdata', 'TableName');
$sql = 'DELETE FROM '.$custom_table.'
WHERE ResourceId = '.$ResourceId;
$this->adodbConnection->Execute($sql);
}
function CopyResource($OldId,$NewId, $main_prefix)
{
$custom_data =& $this->Application->recallObject($main_prefix.'-cdata.-item', null, Array('skip_autoload' => true));
$custom_data->Load($OldId, 'ResourceId');
if ($custom_data->isLoaded()) {
$custom_data->SetDBField('ResourceId', $NewId);
$custom_data->Create();
}
}
function &SetFieldValue($FieldId,$ResourceId,$Value)
{
// so strange construction used, because in normal
// way it doesn't work at all (gets item copy not
// pointer)
$index = $this->GetDataItem($FieldId, true);
if($index !== false)
{
$d =& $this->Items[$index];
}
else
{
$d = null;
}
if(is_object($d))
{
$d->Set('Value', $Value);
if(!strlen($Value))
{
for($x=0;$x<count($this->Items);$x++)
{
if($this->Items[$x]->Get("CustomFieldId") == $FieldId && $this->Items[$x]->Get("ResourceId") == $ResourceId)
{
$this->Items[$x]->Set("CustomFieldId",0);
break;
}
}
$d->Delete(true);
}
}
else
{
- if(strlen($Value)>0)
- {
$d = new clsCustomMetaData();
$d->Set("CustomFieldId",$FieldId);
$d->Set("ResourceId",$ResourceId);
$d->Set("Value",$Value);
array_push($this->Items,$d);
- }
}
return $d;
}
function &GetDataItem($id, $return_index = false)
{
// $id - custom field id to find
// $return_index - return index to items, not her.
$found = false;
$index = false;
for($i = 0; $i < $this->NumItems(); $i++)
{
$d =& $this->GetItemRefByIndex($i);
if($d->Get("CustomFieldId")==$id)
{
$found=TRUE;
break;
}
}
return $found ? ($return_index ? $i : $d) : false;
}
function SaveData($main_prefix, $resource_id)
{
$ml_formatter =& $this->Application->recallObject('kMultiLanguage');
$custom_data =& $this->Application->recallObject($main_prefix.'-cdata', null, Array('skip_autoload' => true));
$custom_data->Load($resource_id, 'ResourceId');
foreach($this->Items as $f) {
$custom_id = $f->Get('CustomFieldId');
$value = isset($GLOBALS['_CopyFromEditTable']) ? $f->Get('Value') : stripslashes($f->Get('Value'));
$custom_name = $ml_formatter->LangFieldName('cust_'.$custom_id);
$custom_data->SetDBField($custom_name, $value);
}
$custom_data->SetDBField('ResourceId', $resource_id);
return $custom_data->isLoaded() ? $custom_data->Update() : $custom_data->Create();
}
function &getTempHandler($prefix)
{
if (strlen($prefix) > 2 || strlen($prefix) == 0) {
// not e.g. bb, c, u, but CustomFieldId :) or empty at all
$this->Application->reportError(get_class($this), 'CopyToEditTable');
}
$temp_handler =& $this->Application->recallObject($prefix.'-cdata_TempHandler', 'kTempTablesHandler');
return $temp_handler;
}
function CopyToEditTable($main_prefix, $idlist)
{
$temp_handler =& $this->getTempHandler($main_prefix);
$temp_handler->DoCopyLiveToTemp($temp_handler->Tables, $idlist);
}
function CopyFromEditTable($main_prefix)
{
$temp_handler =& $this->getTempHandler($main_prefix);
$temp_handler->DoCopyTempToOriginal($temp_handler->Tables);
}
function PurgeEditTable($main_prefix)
{
$temp_handler =& $this->getTempHandler($main_prefix);
$temp_handler->CancelEdit();
}
function CreateEmptyEditTable($main_prefix)
{
$temp_handler =& $this->getTempHandler($main_prefix);
$temp_handler->DoCopyLiveToTemp($temp_handler->Tables, Array(0));
}
}
?>
Property changes on: trunk/kernel/include/custommetadata.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.10
\ No newline at end of property
+1.11
\ No newline at end of property

Event Timeline