示例#1
0
function do_edit_save($aid, $params)
{
    global $step, $smarty, $view;
    if (array_key_exists('fields', $params)) {
        //step 2 submitted
        $addAction = cf\api\admin\getAction($view['add_action']['id']);
        $q = \cf\createQuery($addAction['query']);
        if (($f = fopen($params['csv'], 'r')) !== false) {
            $first = true;
            while (($values = fgetcsv($f, 0, $params['fields_delimiter'])) !== false) {
                if ($first) {
                    $first = false;
                    if ($params['has_names']) {
                        continue;
                    }
                }
                $p = array();
                foreach ($params['fields'] as $nm => $pos) {
                    $q->setParam($nm, $pos != '' ? $values[$pos] : null);
                }
                $q->execute();
            }
            fclose($f);
            unlink($params['csv']);
        } else {
            die('error');
        }
    } else {
        if (array_key_exists('csv', $_FILES)) {
            //step 1 submitted
            if (UPLOAD_ERR_OK != $_FILES['csv']['error'] || !is_uploaded_file($_FILES['csv']['tmp_name'])) {
                //if a file is not uploaded check upload_max_filesize or post_max_size in php.ini
                die('error');
            }
            $path = cf\Config::path . '../upload/' . uniqid('csv');
            if (move_uploaded_file($_FILES['csv']['tmp_name'], $path)) {
                chmod($path, 0644);
            } else {
                die('error');
            }
            if (($f = fopen($path, 'r')) !== false) {
                $fdelim = $params['fields_delimiter'] != 'other' ? $params['fields_delimiter'] : $params['other_fields_delimiter'];
                $smarty->assign('csv_fields', json_encode(fgetcsv($f, 0, $fdelim)));
                fclose($f);
                $smarty->assign('csv', str_replace('\\', '/', $path));
                $smarty->assign('has_names', $params['has_names']);
                $smarty->assign('fields_delimiter', $fdelim);
                $addAction = cf\api\admin\getAction($view['add_action']['id']);
                $smarty->assign('editParams', json_encode($addAction['params']));
                $step = 2;
            } else {
                die('error');
            }
        }
    }
}
示例#2
0
文件: edit.php 项目: sd-studio/or
        $params = array_merge(cf\param::get('p'), $k);
        $do = cf\param::get('do');
        $fileURLs = cf\param::get('URL', array());
        foreach ($fileURLs as $fnm => $url) {
            if ($url) {
                $_FILES[$fnm] = array('name' => $url, 'type' => 'url');
            }
        }
        if (function_exists('do_edit_save')) {
            do_edit_save($aid, $params);
        } else {
            cf\api\admin\doAction($aid, $params);
        }
        if ('save' == $do) {
            forward(cf\param::get('referer'));
        }
    }
    $action = cf\api\admin\getAction($aid, $k);
    $smarty->assign('k', json_encode($k));
    $smarty->assign('view', $view);
    $smarty->assign('action', $action);
    $smarty->assign('referer', cf\param::get('referer'));
    $smarty->assign('goTab', cf\param::get('tab', 0));
    $name = $k ? cf\api\admin\getNameByKey($view['id'], $k[$view['primary_key_field']]) : false;
    if (function_exists('do_edit_create')) {
        do_edit_create($k);
    }
    show(isset($tpl) ? $tpl : 'edit', $view['name'] . ($name ? ": {$name}" : '') . ' - ' . $action['name'], array(array($view['url'] . '?vid=' . $view['id'], $view['name']), array('', $action['name'])));
} catch (Exception $e) {
    echo $e;
}