Да, RSS перестал почемуто пахать.
Сейчас основная проблема это то, что при использовании функции массового внесения возникает проблема с кодировкой. Суть такова:
- создаю файл .csv с несколькими данными товара для внесения (в разных кодировках пробовал сохранять его содержание)
- загружаю на сайт. formcheker жалуется на значения с русским текстом, говорит что они пустые.
- я отключаю проверку и он загружается , и как и следовало ожидать в готовом аукционе вся инфа которая была на русском не отображается.
Вот наверно та функция, которая забивает его в БД, может здесь ответ, подскажите
PHP:
function importFile($input, $relative_path = null)
{
$valid_row = array();
$is_upload = false;
if (!empty($input))
{
$file['name'] = $input;
$is_upload = true;
}
// $is_upload = @copy($file['tmp_name'], 'uplimg/' . $file['name']);
if ($is_upload)
{
$file_content = file($relative_path . 'uplimg/' . $file['name']);
$fv = new formchecker();
$session = new session();
$user_id = $session->value('user_id');
foreach ($file_content as $id => $row)
{
$import_errors = false;
if ($id > 0)
{
//$imported_row = @explode($this->csv_delimiter, $row);
$imported_row = $this->csvExplode($row, $this->csv_delimiter);
$counter = 0;
$error_details = null;
foreach ($this->fields_details as $details)
{
$field = trim($imported_row[$counter]);
if (!empty($details['formchecker']))
{
foreach ($details['formchecker'] as $form_checker)
{
if (is_array($form_checker))
{
list($function_name, $allowed_values) = $form_checker;
$array_key = array_search($allowed_values, $this->column_names);
if ($array_key)
{
$allowed_values = $imported_row[$array_key];
}
$fv_result = $fv->$function_name($field, $allowed_values, null);
}
else
{
$fv_result = $fv->$form_checker($field, null);
}
if (!$fv_result)
{
$error_details[] = '<li>Field Name: <b>' . $details['name'] . '</b>; Function Error: <b>' . $function_name . '</b> - Details: ' . ((empty($field)) ? '<em>null</em>' : $this->error_field_display($field)) . ' != ' . $this->db->implode_array((array)$allowed_values) . '</li>';
}
$import_errors = (!$fv_result) ? true : $import_errors;
}
}
$counter++;
}
if ($import_errors)
{
$this->setException(
'<span class="redfont"><b>Error</b>:</span>
Errors reported on row <b>#' . ($id+1) . '</b>, Auction Name: <b>' . $imported_row[0] . '</b>.
The row cannot imported.'.
'<ul style="padding: 0 25px; margin: 0">' . $this->db->implode_array($error_details, '') . '</ul>'
);
}
else
{
$valid_row[] = $imported_row;
}
}
}
@unlink($relative_path . 'uplimg/' . $file['name']);
$this->nb_imported_listings = count($valid_row);
if ($this->nb_imported_listings > 0)
{
// ready to import the file
$this->saveRows($valid_row);
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
<-------------- добавлено через 38 сек. -------------->
Да, RSS перестал почемуто пахать.
Сейчас основная проблема это то, что при использовании функции массового внесения возникает проблема с кодировкой. Суть такова:
- создаю файл .csv с несколькими данными товара для внесения (в разных кодировках пробовал сохранять его содержание)
- загружаю на сайт. formcheker жалуется на значения с русским текстом, говорит что они пустые.
- я отключаю проверку и он загружается , и как и следовало ожидать в готовом аукционе вся инфа которая была на русском не отображается.
Вот наверно та функция, которая забивает его в БД, может здесь ответ, подскажите
PHP:
function importFile($input, $relative_path = null)
{
$valid_row = array();
$is_upload = false;
if (!empty($input))
{
$file['name'] = $input;
$is_upload = true;
}
// $is_upload = @copy($file['tmp_name'], 'uplimg/' . $file['name']);
if ($is_upload)
{
$file_content = file($relative_path . 'uplimg/' . $file['name']);
$fv = new formchecker();
$session = new session();
$user_id = $session->value('user_id');
foreach ($file_content as $id => $row)
{
$import_errors = false;
if ($id > 0)
{
//$imported_row = @explode($this->csv_delimiter, $row);
$imported_row = $this->csvExplode($row, $this->csv_delimiter);
$counter = 0;
$error_details = null;
foreach ($this->fields_details as $details)
{
$field = trim($imported_row[$counter]);
if (!empty($details['formchecker']))
{
foreach ($details['formchecker'] as $form_checker)
{
if (is_array($form_checker))
{
list($function_name, $allowed_values) = $form_checker;
$array_key = array_search($allowed_values, $this->column_names);
if ($array_key)
{
$allowed_values = $imported_row[$array_key];
}
$fv_result = $fv->$function_name($field, $allowed_values, null);
}
else
{
$fv_result = $fv->$form_checker($field, null);
}
if (!$fv_result)
{
$error_details[] = '<li>Field Name: <b>' . $details['name'] . '</b>; Function Error: <b>' . $function_name . '</b> - Details: ' . ((empty($field)) ? '<em>null</em>' : $this->error_field_display($field)) . ' != ' . $this->db->implode_array((array)$allowed_values) . '</li>';
}
$import_errors = (!$fv_result) ? true : $import_errors;
}
}
$counter++;
}
if ($import_errors)
{
$this->setException(
'<span class="redfont"><b>Error</b>:</span>
Errors reported on row <b>#' . ($id+1) . '</b>, Auction Name: <b>' . $imported_row[0] . '</b>.
The row cannot imported.'.
'<ul style="padding: 0 25px; margin: 0">' . $this->db->implode_array($error_details, '') . '</ul>'
);
}
else
{
$valid_row[] = $imported_row;
}
}
}
@unlink($relative_path . 'uplimg/' . $file['name']);
$this->nb_imported_listings = count($valid_row);
if ($this->nb_imported_listings > 0)
{
// ready to import the file
$this->saveRows($valid_row);
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}