Функция cot_import_tabledata в Cotonti

Разбор функции cot_import_tabledata
Функция cot_import_tabledata используется для импорта данных в виде индексированного массива, где каждый элемент соответствует строке таблицы. Она полезна при импорте данных для редактирования таблицы, где каждая строка данных должна быть сохранена в виде записи с индексами.

Код функции
 

/**
 * Imports data from the outer world as indexed array of records imported by cot_import_list.
 * Used to import table editing data as one array ordered by index (IDs) of table lines.
 *
 * @see cot_import_list() for parameters
 *
 * @return ?array Returns indexed array of data or NULL if wrong parameters setted
 */
function cot_import_tabledata($nameslist=array(), $source='P', $nameprefix='', $origindata=array(), $maxlen=0, $dieonerror=false, $buffer=false)
{
    $imported_arrays = cot_import_list($nameslist, $source, $origindata, $nameprefix,'ARR', $maxlen, $dieonerror, $buffer);
    if (!$imported_arrays) {
        return null;
    }
    $result = array();
    $na_data = array();
    foreach ($imported_arrays as $name => $data)
    {
        if (!is_array($data))
        {
            $na_data[$name] = $data;
            unset($imported_arrays[$name]);
        }
    }
    foreach ($imported_arrays as $name => $data)
    {
        if (is_array($data))
        {
            foreach ($data as $index => $value)
            {
                $result[$index][$name] = $value;
                foreach ($na_data as $k => $v) {
                    $result[$index][$k] = $v;
                }
            }
        }
    }
    return $result;
}

 

Описание:
 

cot_import_tabledata($nameslist, $source, $nameprefix, $origindata, $maxlen, $dieonerror, $buffer)

 

Параметры:
$nameslist: Список имен переменных для импорта (аналогично функции cot_import_list). Это может быть строка, массив или ассоциативный массив с именами переменных и их фильтрами.

$source: Источник данных, из которого будет происходить импорт (например, 'GET', 'POST', 'COOKIE', и т.д.). По умолчанию используется 'POST'.

$nameprefix: Префикс для имен переменных, чтобы избежать конфликтов имен (например, можно использовать для различения полей).

$origindata: Массив исходных данных, который будет расширен импортированными значениями.

$maxlen: Ограничение длины данных (если передано значение больше 0).

$dieonerror: Если установлено в true, то при ошибке будет выполнена фатальная остановка.

$buffer: Если установлено в true, будет использоваться буферизация данных (если они были отправлены ранее).

Логика работы:

Импорт данных через cot_import_list:

Функция сначала вызывает cot_import_list с параметром фильтра ARR, что позволяет импортировать массивы данных.
Если данные не были успешно импортированы, функция возвращает null.
Подготовка данных для индексированного массива:

После того как данные импортированы, функция разделяет их на два типа:
Массивы: Эти данные будут сохранены как значения для каждой строки таблицы.
Невозможно преобразовать в массив: Эти данные сохраняются в массив $na_data и затем добавляются к каждой строке данных.
Заполнение результатирующего массива:

Для каждого элемента массива, который является массивом (например, строка таблицы), функция создает записи в результатирующем массиве, добавляя к каждой строке значения из массива $na_data.
Таким образом, каждый индекс строки в результирующем массиве будет содержать все необходимые данные, включая те, которые не были представлены как массивы.

Возвращение результата:

Функция возвращает массив, в котором каждая строка таблицы представлена как отдельный элемент с индексом (ID строки).

Пример использования:

// Пример использования для импорта данных в таблицу
$nameslist = ['username', 'age', 'email'];
$source = 'POST';
$data = cot_import_tabledata($nameslist, $source, '', [], 0, false);

 

// Пример с использованием префикса и ограничения длины
$nameslist = ['user_1_name', 'user_1_age', 'user_1_email'];
$source = 'GET';
$data = cot_import_tabledata($nameslist, $source, 'user_', [], 50, false);


Примечания:
Функция предназначена для импорта данных в виде многомерного массива, где каждый элемент массива представляет собой строку таблицы, а индексы — это идентификаторы строк (например, ID).

Основное использование функции — это работы с таблицами, где данные представляют собой записи с возможностью редактирования, а каждый столбец может быть передан через разные формы или запросы.

 

3 минут чтения Administrator

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 21.01.2025 11:36
  • Последнее обновление: 21.01.2025 11:36