/** * 名簿をエクスポート * * @return string */ function service_member_export() { // 名簿を取得 $members = select_members(array('where' => 'members.public = 1', 'order_by' => 'members.id'), array('associate' => true)); // CSV形式に整形 $data = mb_convert_encoding('"ID","登録日時","更新日時","削除","クラスID","名前","名前(フリガナ)","成績","生年月日","メールアドレス","電話番号","メモ","画像1","画像2","公開","クラス名","分類ID"', 'SJIS-WIN', 'UTF-8'); $data .= "\n"; foreach ($members as $member) { $flag = false; foreach ($member as $key => $value) { if ($flag) { $data .= ','; } if ($key === 'grade') { $value = $GLOBALS['config']['options']['member']['grades'][$value]; } elseif ($key === 'public') { $value = $GLOBALS['config']['options']['member']['publics'][$value]; } elseif ($key === 'category_sets') { $value = implode(',', $value); } $data .= '"' . ($value !== '' ? str_replace('"', '""', mb_convert_encoding($value, 'SJIS-WIN', 'UTF-8')) : '') . '"'; $flag = true; } $data .= "\n"; } return $data; }
<?php if (empty($_GET['id'])) { // 名簿を取得 $members = select_members(array('select' => 'DISTINCT members.id, members.name', 'where' => array('members.class_id = :class_id AND members.public = 1', array('class_id' => $_GET['class_id'])), 'order_by' => 'members.id'), array('associate' => true)); header('Content-Type: application/json; charset=' . MAIN_CHARSET); echo json_encode(array('status' => 'OK', 'members' => $members)); exit; } else { // 名簿を取得 $members = select_members(array('where' => array('members.id = :id AND members.public = 1', array('id' => $_GET['id']))), array('associate' => true)); if (empty($members)) { warning('名簿が見つかりません。'); } else { $_view['member'] = $members[0]; } } // タイトル $_view['title'] = '名簿表示';
} // ページを取得 if (isset($_GET['page'])) { $_GET['page'] = intval($_GET['page']); } else { $_GET['page'] = 1; $_SESSION['bulk']['member'] = array(); } // 名簿を取得 if (empty($_GET['class_id'])) { $where = null; } else { $where = array('members.class_id = :class_id', array('class_id' => $_GET['class_id'])); } $_view['members'] = select_members(array('where' => $where, 'order_by' => 'id', 'limit' => array(':offset, :limit', array('offset' => $GLOBALS['config']['limits']['member'] * ($_GET['page'] - 1), 'limit' => $GLOBALS['config']['limits']['member']))), array('associate' => true)); $_view['member_count'] = select_members(array('select' => 'COUNT(DISTINCT members.id) AS count', 'where' => $where), array('associate' => true)); $_view['member_count'] = $_view['member_count'][0]['count']; $_view['member_page'] = ceil($_view['member_count'] / $GLOBALS['config']['limits']['member']); // 教室を取得 $classes = select_classes(array('order_by' => 'sort, id')); $class_sets = array(); foreach ($classes as $class) { $class_sets[$class['id']] = $class; } $_view['class_sets'] = $class_sets; $_view['classes'] = $classes; // 分類を取得 $categories = select_categories(array('order_by' => 'sort, id')); $category_sets = array(); foreach ($categories as $category) { $category_sets[$category['id']] = $category;
$_SESSION['bulk']['member'][$id] = true; } else { unset($_SESSION['bulk']['member'][$id]); } } } else { if ($_POST['checked'] === '1') { $_SESSION['bulk']['member'][$_POST['id']] = true; } else { unset($_SESSION['bulk']['member'][$_POST['id']]); } } ok(); } elseif (!empty($_SESSION['bulk']['member'])) { // 処理対象を取得 $_view['members'] = select_members(array('where' => 'members.id IN(' . implode(',', array_map('db_escape', array_keys($_SESSION['bulk']['member']))) . ')', 'order_by' => 'members.id'), array('associate' => true)); $_view['member_bulks'] = array_keys($_SESSION['bulk']['member']); // 教室を取得 $classes = select_classes(array('order_by' => 'sort, id')); $class_sets = array(); foreach ($classes as $class) { $class_sets[$class['id']] = $class; } $_view['class_sets'] = $class_sets; $_view['classes'] = $classes; // 分類を取得 $categories = select_categories(array('order_by' => 'sort, id')); $category_sets = array(); foreach ($categories as $category) { $category_sets[$category['id']] = $category; }
foreach (array_keys($GLOBALS['config']['file_permissions'][$_GET['format']]) as $permission) { if (preg_match($GLOBALS['config']['file_permissions'][$_GET['format']][$permission]['regexp'], $_SESSION['file'][$_GET['target']][$_GET['key']]['name'])) { // マイムタイプ $mime = $GLOBALS['config']['file_permissions'][$_GET['format']][$permission]['mime']; break; } } // コンテンツ $content = $_SESSION['file'][$_GET['target']][$_GET['key']]['data']; } elseif (isset($_GET['id'])) { // 登録内容からファイルを取得 $results = array(); if ($_GET['target'] === 'class') { $results = select_classes(array('where' => array('id = :id', array('id' => $_GET['id'])))); } elseif ($_GET['target'] === 'member') { $results = select_members(array('where' => array('id = :id', array('id' => $_GET['id'])))); } if (empty($results)) { warning('データが見つかりません。'); } else { $result = $results[0]; } $file = $GLOBALS['config']['file_targets'][$_GET['target']] . intval($_GET['id']) . '/' . $result[$_GET['key']]; if (is_file($file)) { foreach (array_keys($GLOBALS['config']['file_permissions'][$_GET['format']]) as $permission) { if (preg_match($GLOBALS['config']['file_permissions'][$_GET['format']][$permission]['regexp'], $result[$_GET['key']])) { // マイムタイプ $mime = $GLOBALS['config']['file_permissions'][$_GET['format']][$permission]['mime']; break; } }
<?php // コードを取得 if (isset($_params[1])) { $_GET['code'] = $_params[1]; } if (!isset($_GET['code']) || !preg_match('/^[\\w\\-]+$/', $_GET['code'])) { error('不正なアクセスです。'); } // ページを取得 if (isset($_GET['page'])) { $_GET['page'] = intval($_GET['page']); } else { $_GET['page'] = 1; } // 教室を取得 $classes = select_classes(array('where' => array('code = :code', array('code' => $_GET['code'])))); if (empty($classes)) { warning('教室が見つかりません。'); } else { $_view['class'] = $classes[0]; } // 名簿を取得 $_view['members'] = select_members(array('where' => array('members.class_id = :class_id AND members.public = 1', array('class_id' => $_view['class']['id'])), 'order_by' => 'members.id', 'limit' => array(':offset, :limit', array('offset' => $GLOBALS['config']['limits']['member'] * ($_GET['page'] - 1), 'limit' => $GLOBALS['config']['limits']['member']))), array('associate' => true)); $_view['member_count'] = select_members(array('select' => 'COUNT(*) AS count', 'where' => array('members.class_id = :class_id AND members.public = 1', array('class_id' => $_view['class']['id']))), array('associate' => true)); $_view['member_count'] = $_view['member_count'][0]['count']; $_view['member_page'] = ceil($_view['member_count'] / $GLOBALS['config']['limits']['member']); // タイトル $_view['title'] = $_view['class']['name'];
function mass_subscribe() { global $vars, $db, $t, $config; $vars = unserialize($vars['vars']); if (!check_form()) { display_form(); return; } $added = 0; foreach (select_members() as $member_id => $m) { switch ($vars['assign_date']) { case 'SAME': $b = $m['begin_date']; $e = $m['expire_date']; break; case 'FIXED': $b = date('Y-m-d', strtotime($vars['period_begin'])); $e = date('Y-m-d', strtotime($vars['period_end'])); break; case 'LIFETIME': $b = date('Y-m-d'); $e = '2037-12-31'; break; default: die("Unknown assign_date method - internal error"); } // print "$b=$e<br />"; $p = array('member_id' => $member_id, 'product_id' => $vars['product_id'], 'begin_date' => $b, 'expire_date' => $e, 'completed' => 1, 'paysys_id' => 'manual', 'receipt_id' => $vars['receipt_id'], 'amount' => $vars['amount']); $db->add_payment($p); $added++; } admin_log("Mass Subscribe {$sf} to Product #{$vars['product_id']}", "products", $vars['product_id']); $t->assign('text', "{$added} subscriptions added succesfully."); $t->assign('link', "products.php"); $t->display("admin/mass_subscribed.html"); }