Функция сохранения доп.полей xfields
Автор темы: Sander, 10 марта 2017г
• Sander
Отправлено: 10 март 2017, 11:32:21
Функция формирующая строку хранения данных доп.полей из массива с ключами для записи в БД:{ключ}|{значение}||{ключ2}|{значение2}
function xfieldsdatasave($xfields = [])
{
global $db;
$filecontents = [];
foreach ($xfields as $xfielddataname => $xfielddatavalue) {
if ($xfielddataname == "" OR $xfielddatavalue === "") continue;
$xfielddataname = str_replace( "|", "|", $xfielddataname );
$xfielddataname = str_replace( "\r\n", "__NEWL__", $xfielddataname );
$xfielddatavalue = str_replace( "|", "|", $xfielddatavalue );
$xfielddatavalue = str_replace( "\r\n", "__NEWL__", $xfielddatavalue );
$filecontents[] = "$xfielddataname|$xfielddatavalue";
}
$filecontents = count($filecontents) ? $db->safesql(join("||", $filecontents)) : '';
return $filecontents;
}
Пример использования:
$id = 117;
$xfields = [
'link' => 'http://sandev.pro/',
'price' => '50',
];
$filecontents = xfieldsdatasave($xfields);
$db->query("UPDATE dle_post set xfields = '$filecontents' WHERE id=$id");