} exit(""); } // delete owner clean url if ($action == "delete" && !empty($clean_url_delete_data)) { $language = !empty($current_language) ? $current_language : $config['default_customer_language']; foreach ($clean_url_delete_data as $clean_url_data => $_v) { list($attribute_id, $item_id) = explode("_", $clean_url_data); db_query("\n DELETE FROM {$tables['attributes_values']}\n WHERE item_id = '{$item_id}' AND attribute_id = '{$attribute_id}' AND code = '{$language}'\n AND (item_type = 'O' OR item_type = 'OS')\n "); } $top_message = array('content' => cw_get_langvar_by_name('txt_redirect_rule_deleted'), 'type' => 'I'); } // add owner clean url if ($action == "add" && !empty($clean_urls_add_data)) { if (!empty($clean_urls_add_data['dinamic_url']) && trim($clean_urls_add_data['dinamic_url']) != 'search' && !empty($clean_urls_add_data['static_url'])) { $dinamic_url = cw_clean_url_adjust($clean_urls_add_data['dinamic_url']); $static_url = trim($clean_urls_add_data['static_url'], '\\ /'); $language = !empty($current_language) ? $current_language : $config['default_customer_language']; $attribute_id = cw_query_first_cell("\n SELECT attribute_id FROM {$tables['attributes']} WHERE field='clean_url' AND item_type = 'O'\n "); $item_id = cw_query_first_cell("\n SELECT MAX(item_id) FROM {$tables['attributes_values']} WHERE attribute_id='{$attribute_id}' AND item_type = 'O'\n ") + 1; $params = array('item_id' => $item_id, 'item_type' => "O", 'attribute_id' => $attribute_id, 'code' => $language); $params['value'] = cw_clean_url_check_and_generate($dinamic_url, $params, $language); cw_array2insert('attributes_values', $params); $params['item_type'] = "OS"; $params['value'] = $static_url; cw_array2insert('attributes_values', $params); $top_message = array('content' => cw_get_langvar_by_name('txt_new_redirect_rule_added'), 'type' => 'I'); } else { $top_message = array('content' => cw_get_langvar_by_name('txt_error_new_redirect_rule_added'), 'type' => 'W'); } }
function cw_clean_url_attributes_create_attribute($params, $return) { global $tables, $current_language, $config; $attribute_id = empty($params['attribute_id']) ? $return : $params['attribute_id']; //editable attribute $language = $params['language']; $data = $params['data']; // cw_attributes.*, default_value /*type = "text", "textarea", "integer", "decimal", "selectbox", "multiple_selectbox", "date", "yes_no", "hidden"*/ if ($data['item_type'] != 'P' || empty($attribute_id) || empty($data['type'])) { return $return; } cw_load('attributes'); $language = !empty($language) ? $language : (!empty($current_language) ? $current_language : $config['default_customer_language']); $main_attribute_id = cw_clean_url_get_uniting_attribute_id(); $attribute_values_attribute_id = cw_clean_url_get_attribute_values_attribute_id(); // Save clean url for attribute field $clean_url_field = !empty($data['clean_url_field']) ? $data['clean_url_field'] : $data['name']; $clean_url_field = trim($clean_url_field); if (!$clean_url_field) { $result = cw_func_call("cw_attributes_get_attribute", array('attribute_id' => $attribute_id, 'language' => $language)); $clean_url_field = cw_clean_url_adjust($result['name']); } else { $clean_url_field = cw_clean_url_adjust($clean_url_field); } cw_clean_url_check_url_and_save_value($clean_url_field, $attribute_id, clean_urls_attributes_item_type, $main_attribute_id, $language); // Save clean urls for attribute values if (in_array($data['type'], array('selectbox', 'multiple_selectbox', 'integer', 'decimal'))) { $key_names = array('integer' => 'default_values_select', 'decimal' => 'default_values_select', 'selectbox' => 'default_values_select', 'multiple_selectbox' => 'default_values_multiselect'); $key_name = $key_names[$data['type']]; if (!empty($data[$key_name]) && is_array($data[$key_name])) { $attribute_values = cw_query("SELECT attribute_value_id FROM {$tables['attributes_default']}\n \tWHERE attribute_id = '{$attribute_id}' ORDER BY attribute_value_id"); // unshift array for equal with $data arrays array_unshift($attribute_values, ''); // change array for equal with $data arrays $fixed_attribute_values = array(); // get existing ids $exist_ids = array_filter($data[$key_name . '_id']); if (!empty($exist_ids)) { $fixed_attribute_values = $attribute_values; if (!empty($data[$key_name][0])) { // get element for new value with 0 key in array $zero_key = max(array_keys($exist_ids)) + 1; // set element with $zero_key on 0 position if (isset($fixed_attribute_values[$zero_key])) { $fixed_attribute_values[0] = $fixed_attribute_values[$zero_key]; array_splice($fixed_attribute_values, $zero_key, 1); } } } else { $position = 1; foreach ($data[$key_name] as $_k => $_v) { if ($_k == 0 && !empty($data[$key_name][$_k])) { // change array for equal with $data arrays // get existing ids $exist_ids = array_filter($data[$key_name . '_id']); // get element for new value with 0 key in array $zero_key = max(array_keys($exist_ids)) + 1; // set element with $zero_key on 0 position if (isset($attribute_values[$zero_key])) { $fixed_attribute_values[$_k] = $attribute_values[$zero_key]; array_splice($attribute_values, $zero_key, 1); } } else { $fixed_attribute_values[$_k] = $attribute_values[$position]; $position++; } } } foreach ($data[$key_name] as $k => $v) { if (!empty($v) && $data[$key_name . '_active'][$k]) { $attribute_value_id = !empty($data[$key_name . '_id'][$k]) ? $data[$key_name . '_id'][$k] : $fixed_attribute_values[$k]['attribute_value_id']; if (!empty($attribute_value_id)) { $clean_url_value = !empty($data[$key_name . '_cleanurl'][$k]) ? $data[$key_name . '_cleanurl'][$k] : $clean_url_field . "-" . $v; cw_clean_url_check_url_and_save_value($clean_url_value, $attribute_value_id, clean_urls_attributes_values_item_type, $attribute_values_attribute_id, $language); } } } } } elseif ($data['type'] == 'text' || $data['type'] == 'textarea') { if (!empty($data['default_value'])) { $clean_url_value = !empty($data['clean_url_value_field']) ? $data['clean_url_value_field'] : $clean_url_field . "-" . $data['default_value']; // attribute id for default value $attribute_value_id = $data['attribute_value_id']; if (empty($attribute_value_id)) { $attribute_value_id = cw_query_first_cell("SELECT attribute_value_id FROM {$tables['attributes_default']}\n WHERE attribute_id = '{$attribute_id}'"); } if (!empty($clean_url_value) && !empty($attribute_value_id) && $data['active']) { cw_clean_url_check_url_and_save_value($clean_url_value, $attribute_value_id, clean_urls_attributes_values_item_type, $attribute_values_attribute_id, $language); } } } return $return; }