Превращение электронной таблицы в массив, цикл и вызов функции - PullRequest
1 голос
/ 28 декабря 2010

Это связано с генерацией групп в BuddyPress.

У меня есть электронная таблица с (в данном случае) названием группы, описанием группы и слагом.

Мне нужно получить информацию из файла, превратить ее в массив, затем выполнить цикл по ней и каждый раз вызывать groups_create_group ().

Я могу найти эту функцию в bp-groups.php (http://www.nomorepasting.com/getpaste.php?pasteid=35217). Она сообщает мне все параметры, которые вам нужно заполнить.

Я довольно новичок в этом и ищу, какЯ могу это сделать. Знаете ли вы, как я могу получить эту информацию и превратить ее в массив? Проходить через нее и каждый раз вызывать groups_create_group ()?

Если у вас есть какие-либо удобные ссылки на эту тему, я тожебуду признателен.

1 Ответ

2 голосов
/ 28 декабря 2010

Пока у вас есть доступная функция groups_create_group (т. Е. Требуемый файл был включен), вы сможете делать что-то вроде этого

<?php

$groups = array();

if (($handle = fopen("groupData.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $group = array('group_id' => 'SOME ID', 'name' => $data[0], 'description' => $data[1], 'slug' => $data[2], 'date_created' => gmdate( "Y-m-d H:i:s" ), 'status' => 'public' );
        $groups[] = $group;
    }   
    fclose($handle);
}

foreach ($groups as $group) {
    groups_create_group($group);
} 

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

 $group = array('group_id'    => 'SOME ID', 
                'name'        => $data[0], 
                'description' => $data[1], 
                'slug' => groups_check_slug(sanitize_title(esc_attr($data[2]))), 
                'date_created' => gmdate( "Y-m-d H:i:s" ), 
                'status' => 'public' 
 );
...