Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/core/units/helpers/controls/minput_helper.php
Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Line(s) | |||||
/** | /** | ||||
* Validates MInput control fields | * Validates MInput control fields | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
*/ | */ | ||||
function OnValidateMInputFields($event) | function OnValidateMInputFields($event) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$items_info = $this->Application->GetVar($event->getPrefixSpecial(true)); | $items_info = $this->Application->GetVar($event->getPrefixSpecial(true)); | ||||
if ($items_info) { | if ($items_info) { | ||||
list ($id, $field_values) = each($items_info); | list ($id, $field_values) = each($items_info); | ||||
foreach ($field_values as $field_name => $field_value) { | foreach ($field_values as $field_name => $field_value) { | ||||
$object->SetField($field_name, $field_value); | $object->SetField($field_name, $field_value); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Line(s) | |||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @param string $store_field main item's field name, to store values into | * @param string $store_field main item's field name, to store values into | ||||
* @param string $sub_prefix prefix used to store info about selected items | * @param string $sub_prefix prefix used to store info about selected items | ||||
* @param Array $use_fields fields, used in value string building | * @param Array $use_fields fields, used in value string building | ||||
*/ | */ | ||||
function LoadValues($event, $store_field, $sub_prefix, $use_fields) | function LoadValues($event, $store_field, $sub_prefix, $use_fields) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
/** @var kDBItem $sub_item */ | |||||
$sub_item = $this->Application->recallObject($sub_prefix, null, Array('skip_autoload' => true)); | $sub_item = $this->Application->recallObject($sub_prefix, null, Array('skip_autoload' => true)); | ||||
/* @var $sub_item kDBItem */ | |||||
$foreign_key = $this->Application->getUnitOption($sub_prefix, 'ForeignKey'); | $foreign_key = $this->Application->getUnitOption($sub_prefix, 'ForeignKey'); | ||||
$sql = 'SELECT * | $sql = 'SELECT * | ||||
FROM '.$this->getTable($sub_prefix, $object->IsTempTable()).' | FROM '.$this->getTable($sub_prefix, $object->IsTempTable()).' | ||||
WHERE '.$foreign_key.' = '.$object->GetID(); | WHERE '.$foreign_key.' = '.$object->GetID(); | ||||
$selected_items = $this->Conn->Query($sql); | $selected_items = $this->Conn->Query($sql); | ||||
Show All 26 Lines | |||||
/** | /** | ||||
* Saves data from minput control to subitem table (used from subitem hook) | * Saves data from minput control to subitem table (used from subitem hook) | ||||
* | * | ||||
* @param kEvent $sub_event | * @param kEvent $sub_event | ||||
* @param string $store_field | * @param string $store_field | ||||
*/ | */ | ||||
function SaveValues(&$sub_event, $store_field) | function SaveValues(&$sub_event, $store_field) | ||||
{ | { | ||||
/** @var kDBItem $main_object */ | |||||
$main_object = $sub_event->MasterEvent->getObject(); | $main_object = $sub_event->MasterEvent->getObject(); | ||||
/* @var $main_object kDBItem */ | |||||
$affected_field = $main_object->GetDBField($store_field); | $affected_field = $main_object->GetDBField($store_field); | ||||
/** @var kDBItem $object */ | |||||
$object = $this->Application->recallObject($sub_event->getPrefixSpecial(), null, Array ('skip_autoload' => true)); | $object = $this->Application->recallObject($sub_event->getPrefixSpecial(), null, Array ('skip_autoload' => true)); | ||||
/* @var $object kDBItem */ | |||||
$sub_table = $object->TableName; | $sub_table = $object->TableName; | ||||
$foreign_key = $this->Application->getUnitOption($sub_event->Prefix, 'ForeignKey'); | $foreign_key = $this->Application->getUnitOption($sub_event->Prefix, 'ForeignKey'); | ||||
$sql = 'DELETE FROM '.$sub_table.' | $sql = 'DELETE FROM '.$sub_table.' | ||||
WHERE '.$foreign_key.' = '.$main_object->GetID(); | WHERE '.$foreign_key.' = '.$main_object->GetID(); | ||||
$this->Conn->Query($sql); | $this->Conn->Query($sql); | ||||
if ($affected_field) { | if ($affected_field) { | ||||
$records = $this->parseMInputXML($affected_field); | $records = $this->parseMInputXML($affected_field); | ||||
$main_id = $main_object->GetID(); | $main_id = $main_object->GetID(); | ||||
foreach ($records as $fields_hash) { | foreach ($records as $fields_hash) { | ||||
$object->Clear(); | $object->Clear(); | ||||
$fields_hash[$foreign_key] = $main_id; | $fields_hash[$foreign_key] = $main_id; | ||||
$object->SetDBFieldsFromHash($fields_hash); | $object->SetDBFieldsFromHash($fields_hash); | ||||
$object->Create(); | $object->Create(); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
No newline at end of file | No newline at end of file |