/** * excel download page */ function dispPurplebookExcelDownload() { $download_fields = Context::get('download_fields'); if (!$download_fields) { $download_fields = "user_id,user_name,cellphone"; } $download_fields_arr = explode(',', $download_fields); // check permission $allowed = false; $allow_group = Context::get('allow_group'); $group_srls = explode(',', $allow_group); $logged_info = Context::get('logged_info'); if (!$logged_info) { return new Object(-1, 'msg_invalid_request'); } $oMemberModel =& getModel('member'); foreach ($group_srls as $group_srl) { $group = $oMemberModel->getGroup($group_srl); if (in_array($group->title, $logged_info->group_list)) { $allowed = true; } } if (!$allowed && $logged_info->is_admin != 'Y') { return new Object(-1, 'msg_invalid_request'); } header("Content-Type: Application/octet-stream;"); header("Content-Disposition: attachment; filename=\"members-" . date('Ymd') . ".xls\""); echo '<html>'; echo '<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>'; echo '<body>'; echo '<table>'; // header echo '<tr>'; foreach ($download_fields_arr as $field) { echo "<th>{$field}</th>"; } echo "</tr>\n"; // arguments $args = new Object(); $this->makeArgs($args); // include utility require_once 'purplebook.utility.php'; // only mysql $db_info = Context::getDBInfo(); if ($args->group_srl) { $query = "SELECT * FROM {$db_info->db_table_prefix}_member member" . " JOIN {$db_info->db_table_prefix}_member_group_member member_group" . " ON member_group.member_srl = member.member_srl" . " WHERE member_group.group_srl = {$args->group_srl}"; $oDB =& DB::getInstance(); $result = $oDB->_query($query); require_once 'zMigration.class.php'; $dbtool = new zMigration(); $dbtool->setDBInfo($db_info); while ($row = $dbtool->fetch($result)) { $obj = $this->getResponseObject($row, $download_fields_arr); $obj->cellphone = CSUtility::getDashTel(str_replace('|@|', '', $obj->cellphone)); // skip if no phone number. if (Context::get('nonphone_skip') && !$obj->cellphone) { continue; } echo '<tr>'; foreach ($download_fields_arr as $field) { if (isset($obj->{$field})) { echo '<td style="mso-number-format:\\@\\">' . $obj->{$field} . '</td>'; } } echo "</tr>\n"; unset($obj); unset($row); } } else { // memory limit problem $query_id = 'purplebook.getMembers'; $output = executeQueryArray($query_id, $args); foreach ($output->data as $no => $row) { $obj = $this->getResponseObject($row, $download_fields_arr); $obj->cellphone = CSUtility::getDashTel(str_replace('|@|', '', $obj->cellphone)); // skip if no phone number. if (Context::get('nonphone_skip') && !$obj->cellphone) { continue; } echo '<tr>'; foreach ($download_fields_arr as $field) { if (isset($obj->{$field})) { echo '<td style="mso-number-format:\\@\\">' . $obj->{$field} . '</td>'; } } echo "</tr>\n"; unset($obj); unset($row); } } // tail echo '</table>'; echo '</body>'; echo '</html>'; exit(0); }