Index: branches/RC/core/units/general/helpers/controls/minput_helper.php
===================================================================
diff -u -r10294 -r10647
--- branches/RC/core/units/general/helpers/controls/minput_helper.php (.../minput_helper.php) (revision 10294)
+++ branches/RC/core/units/general/helpers/controls/minput_helper.php (.../minput_helper.php) (revision 10647)
@@ -24,7 +24,7 @@
if (!in_array($field_name, $use_fields)) {
continue;
}
- $xml .= ''.$field_value.'';
+ $xml .= '' . htmlspecialchars($field_value) . '';
}
$xml .= '';
}
@@ -109,43 +109,43 @@
{
$object =& $event->getObject();
/* @var $object kDBItem */
-
- $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');
$sql = 'SELECT *
FROM '.$this->getTable($sub_prefix, $object->IsTempTable()).'
WHERE '.$foreign_key.' = '.$object->GetID();
-
+
$selected_items = $this->Conn->Query($sql);
-
+
$field_names = array_keys( $sub_item->GetFieldValues() );
-
+
foreach ($selected_items as $key => $fields_hash) {
$sub_item->Clear();
$sub_item->SetDBFieldsFromHash($fields_hash);
-
+
// to fill *_date and *_time fields from main date fields
- $sub_item->UpdateFormattersSubFields();
-
+ $sub_item->UpdateFormattersSubFields();
+
foreach ($field_names as $field) {
- $field_options = $sub_item->GetFieldOptions($field);
+ $field_options = $sub_item->GetFieldOptions($field);
$formatter = array_key_exists('formatter', $field_options) ? $field_options['formatter'] : false;
-
+
if ($formatter == 'kDateFormatter') {
- $selected_items[$key][$field] = $sub_item->GetField($field);
+ $selected_items[$key][$field] = $sub_item->GetField($field);
}
else {
- $selected_items[$key][$field] = $sub_item->GetDBField($field);
+ $selected_items[$key][$field] = $sub_item->GetDBField($field);
}
}
}
$object->SetDBField($store_field, $this->prepareMInputXML($selected_items, $use_fields));
}
-
+
/**
* Saves data from minput control to subitem table (used from subitem hook)
*
@@ -157,21 +157,21 @@
$main_object =& $sub_event->MasterEvent->getObject();
$affected_field = $main_object->GetDBField($store_field);
- $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;
$foreign_key = $this->Application->getUnitOption($sub_event->Prefix, 'ForeignKey');
-
+
$sql = 'DELETE FROM '.$sub_table.'
WHERE '.$foreign_key.' = '.$main_object->GetID();
-
+
$this->Conn->Query($sql);
-
+
if ($affected_field) {
$records = $this->parseMInputXML($affected_field);
$main_id = $main_object->GetID();
-
+
foreach ($records as $fields_hash) {
$object->Clear();
$fields_hash[$foreign_key] = $main_id;