Служба поддержки прислала совет, как укоротить или заменить длинные названия дополнительных характеристик, которые импортируются из УТ11.1. )))
"Вы можете дописать это правило в файле modules/shop/shop.1c.php везде, где идет работа с характеристиками. Например так:
$name_param = preg_replace('/ \(Справочник (.*)\)/', '', $name_param);
$name_param нужно заменить на переменную, в которой в конкретном месте записано имя характеристики. Например, в функции import_params - $xml_feature->Наименование."
я полез ковырять, - ничего не получилось.
Вот код в котором нужно сделать эту замену. Но я к сожалению не программист и не справился с этой задачей. Может ли кто-нибудь помочь мне.
Готов отблагодарить ))
* Импорт дополнительных характеристик
*
* @return void
*/
private function import_params($xml)
{
$property = array();
if(isset($xml->Свойства->СвойствоНоменклатуры))
{
$property = $xml->Свойства->СвойствоНоменклатуры;
}
if(isset($xml->Свойства->Свойство))
{
$property = $xml->Свойства->Свойство;
}
foreach ($property as $xml_feature)
{
switch($xml_feature->ТипЗначений)
{
case 'Число':
$type = 'numtext';
break;
case 'Справочник':
$type = 'select';
break;
default:
$type = 'text';
break;
}
$row = DB::query_fetch_array("SELECT id, type FROM {shop_param} WHERE [name]='%h' LIMIT 1", $xml_feature->Наименование);
$values = array();
if(! $row)
{
$row["id"] = DB::query("INSERT INTO {shop_param} ([name], type) VALUES ('%h', '%s')", $xml_feature->Наименование, $type);
$row["type"] = $type;
if($type == 'select' && ! empty($xml_feature->ВариантыЗначений->Справочник))
{
$i = 1;
foreach ($xml_feature->ВариантыЗначений->Справочник as $xml_s)
{
$values[strval($xml_feature->Ид)] = DB::query("INSERT INTO {shop_param_select} ([name], param_id, sort) VALUES ('%h', %d, %d)", $xml_s->Значение, $row["id"], $i++);
}
}
}
else
{
if($row["type"] == "multiple" && $type == 'select')
{
$type = 'multiple';
}
if($row["type"] != $type)
{
DB::query("UPDATE {shop_param} SET type='%s' WHERE id=%d", $type, $row["id"]);
}
if(($type == 'select' || $type == 'multiple') && ! empty($xml_feature->ВариантыЗначений->Справочник))
{
$i = 1;
foreach ($xml_feature->ВариантыЗначений->Справочник as $xml_s)
{
if(! $sel_id = DB::query_result("SELECT id FROM {shop_param_select} WHERE [name]='%h' AND param_id=%d", $xml_s->Значение, $row["id"]))
{
$sel_id = DB::query("INSERT INTO {shop_param_select} ([name], param_id, sort) VALUES ('%h', %d, %d)", $xml_s->Значение, $row["id"], $i++);
}
$values[strval($xml_s->ИдЗначения)] = $sel_id;
}
}
DB::query("DELETE FROM {shop_param_category_rel} WHERE element_id=%d", $row["id"]);
}
$row["values"] = $values;
$this->cache["params"][strval($xml_feature->Ид)] = $row;
}
}