DLE
Как очистить дополнительное поле DLE
Для замены или очистки значений в дополнительных полях используется два способа.
1. Способ
Очистить поле полностью можно если удалить это дополнительное поле. Тогда все значения удаляться. Можно потом снова его создать, но значения нужно будет проставлять снова.
2. Способ
Это с помощью скрипта.
<?php ini_set('memory_limit', '512M'); ini_set('display_errors', 1); error_reporting(1); ini_set('max_input_time', '200000'); define ( "DATALIFEENGINE", true ); set_time_limit(0); header("Content-Type: text/html;charset=utf-8"); require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/classes/mysql.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/modules/functions.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/data/dbconfig.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/data/config.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/engine/api/api.class.php'; $sql = $db->query("SELECT id, xfields FROM ".PREFIX."_post WHERE id<20001"); while ( $row = $db->get_row ($sql) ) { $xfields_array = array(); foreach ( explode('||',$row['xfields']) as $pac_xfields ) { $s_all = explode('|',$pac_xfields); $xfields_array[$s_all[0]] = $s_all[1]; } unset($xfields_array['trailer']); $xfields = array(); foreach ( $xfields_array as $key => $value ) { if ($value!=''){$xfields[] = $key.'|'.str_replace('|','|',$value);} } $xfields = addslashes(implode("||",$xfields)); $db->query("UPDATE ".PREFIX."_post SET xfields='".$xfields."' WHERE id='".$row['id']."'"); } ?>