OLD
/root/addons/seo/func.php
<br />
function fn_seo_update_object($object_data, $object_id, $type, $lang_code, $generate_for_company_ids = array())<br />
{<br />
fn_set_hook('seo_update_objects_pre', $object_data, $object_id, $type, $lang_code, $generate_for_company_ids);<br />
if ((isset($object_data['seo_name']) || !empty($generate_for_company_ids)) && !empty($object_id)) {<br />
$_object_name = '';<br />
$seo_vars = fn_get_seo_vars($type);<br />
if (PRODUCT_TYPE == 'ULTIMATE' && isset($object_data['company_id'])) {<br />
$object_company_id = $object_data['company_id'];<br />
} else {<br />
$object_company_id = '';<br />
}<br />
if (!empty($generate_for_company_ids)) {<br />
$generate_for_company_ids = array_merge($generate_for_company_ids, array($object_company_id));<br />
} else {<br />
$generate_for_company_ids = array($object_company_id);<br />
}<br />
$generate_for_company_ids = array_unique($generate_for_company_ids);<br />
foreach ($generate_for_company_ids as $_company_id) {<br />
$company_name = false;<br />
if (empty($object_data['seo_name'])) {<br />
$object_data['seo_name'] = db_get_field('SELECT name FROM ?:seo_names WHERE object_id = ?i AND company_id = ?i AND type = ?s', $object_id, $_company_id, $type);<br />
$company_name = true;<br />
}<br />
if ($object_company_id == $_company_id) {<br />
if (!empty($object_data['seo_name'])) {<br />
$_object_name = $object_data['seo_name'];<br />
} elseif (!empty($object_data[$seo_vars['description']])) {<br />
$_object_name = $object_data[$seo_vars['description']];<br />
}<br />
} else {<br />
$_object_name = db_get_field('SELECT name FROM ?:seo_names WHERE object_id = ?s AND company_id = ?i AND type = ?s', $object_id, $_company_id, $type);<br />
if (empty($_object_name) && !empty($object_data[$seo_vars['description']])) {<br />
$_object_name = $object_data[$seo_vars['description']];<br />
}<br />
}<br />
fn_create_seo_name($object_id, $type, $_object_name, 0, '', $_company_id, fn_get_corrected_seo_lang_code($lang_code));<br />
if ($company_name) {<br />
unset($object_data['seo_name']);<br />
}<br />
}<br />
}<br />
}<br />
```<br />
<br />
<br />
NEW<br />
/root/addons/seo/func.php<br />
<br />
```php
<br />
fn_set_hook('seo_update_objects_pre', $object_data, $object_id, $type, $lang_code, $generate_for_company_ids);<br />
if ((isset($object_data['seo_name']) || !empty($generate_for_company_ids)) && !empty($object_id)) {<br />
$_object_name = '';<br />
$seo_vars = fn_get_seo_vars($type);<br />
if (PRODUCT_TYPE == 'ULTIMATE' && isset($object_data['company_id'])) {<br />
$object_company_id = $object_data['company_id'];<br />
} else {<br />
$object_company_id = '';<br />
}<br />
if (!empty($generate_for_company_ids)) {<br />
$generate_for_company_ids = array_merge($generate_for_company_ids, array($object_company_id));<br />
} else {<br />
$generate_for_company_ids = array($object_company_id);<br />
}<br />
$generate_for_company_ids = array_unique($generate_for_company_ids);<br />
$seo_name = isset($object_data['seo_name']) ? $object_data['seo_name'] : null;<br />
foreach ($generate_for_company_ids as $_company_id) {<br />
if (!isset($object_data['seo_name']) || (PRODUCT_TYPE == 'ULTIMATE' && !(defined('COMPANY_ID') && COMPANY_ID == $_company_id))) {<br />
if (empty($object_data['seo_name'])) {<br />
$object_data['seo_name'] = db_get_field('SELECT name FROM ?:seo_names WHERE object_id = ?i AND company_id = ?i AND type = ?s AND lang_code = ?s', $object_id, $_company_id, $type, fn_get_corrected_seo_lang_code($lang_code));<br />
}<br />
}<br />
if ($object_company_id == $_company_id) {<br />
if (!empty($object_data['seo_name'])) {<br />
$_object_name = $object_data['seo_name'];<br />
} elseif (!empty($object_data[$seo_vars['description']])) {<br />
$_object_name = $object_data[$seo_vars['description']];<br />
}<br />
} else {<br />
$_object_name = db_get_field('SELECT name FROM ?:seo_names WHERE object_id = ?s AND company_id = ?i AND type = ?s AND lang_code = ?s', $object_id, $_company_id, $type, fn_get_corrected_seo_lang_code($lang_code));<br />
if (empty($_object_name) && !empty($object_data[$seo_vars['description']])) {<br />
$_object_name = $object_data[$seo_vars['description']];<br />
}<br />
}<br />
fn_create_seo_name($object_id, $type, $_object_name, 0, '', $_company_id, fn_get_corrected_seo_lang_code($lang_code));<br />
if ($seo_name === null) {<br />
unset($object_data['seo_name']);<br />
} else {<br />
$object_data['seo_name'] = $seo_name;<br />
}<br />
}<br />
}<br />
}<br />
```<br />
<br />
http://forum.cs-cart.com/tracker/issue-3769-seo-bug/