?> <!--#Meta:widgets/login_info/skins/default/default.login.js--><?php $__tmp = array('widgets/login_info/skins/default/default.login.js', '', '', ''); Context::loadFile($__tmp); unset($__tmp); ?> <div class="account"> <ul class="info"> <li><a href="<?php echo getUrl('act', 'dispMemberInfo', 'member_srl', ''); ?> " title="<?php echo $__Context->lang->last_login; ?> : <?php echo zDate($__Context->logged_info->last_login, "Y-m-d"); ?> " class="user"><?php echo $__Context->logged_info->nick_name; ?> </a></li> <?php if ($__Context->logged_info->is_admin == 'Y') { ?> <li> <a href="<?php echo getUrl('', 'module', 'admin'); ?> " title="<?php echo $__Context->lang->admin; ?>
function dispAttendanceAdminList() { /*attendance model 객체 생성*/ $oAttendanceModel = getModel('attendance'); Context::set('Model', $oAttendanceModel); $selected_date = Context::get('selected_date'); //선택한 날짜 받아오기 $type = Context::get('type'); /*attendance admin model 객체 생성*/ $oAttendanceAdminModel = getAdminModel('attendance'); Context::set('oAttendanceAdminModel', $oAttendanceAdminModel); if ($type != 'config' && $type != 'time') { $user_data = $oAttendanceAdminModel->getAttendanceMemberList(20, $type); Context::set('user_data', $user_data); } // 멤버모델 객체 생성 $oMemberModel = getModel('member'); $group_list = $oMemberModel->getGroups(); Context::set('group_list', $group_list); /*날짜 관련*/ if (!$selected_date) { $selected_date = zDate(date('YmdHis'), "Ymd"); } $year = substr($selected_date, 0, 4); $month = substr($selected_date, 4, 2); $day = substr($selected_date, 6, 2); $end_day = date('t', mktime(0, 0, 0, $month, 1, $year)); $oMemberModel = getModel('member'); Context::set('end_day', $end_day); Context::set('year', $year); Context::set('selected', $selected_date); Context::set('month', $month); Context::set('day', $day); Context::set('ipaddress', $_SERVER['REMOTE_ADDR']); Context::set('oMemberModel', $oMemberModel); //module의 설정값 가져오기 $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('attendance'); $oModuleAdminModel = getAdminModel('module'); Context::set('config', $config); $start_time = new stdClass(); $start_time->hour = substr($config->start_time, 0, 2); $start_time->min = substr($config->start_time, 2, 2); $end_time = new stdClass(); $end_time->hour = substr($config->end_time, 0, 2); $end_time->min = substr($config->end_time, 2, 2); Context::set('start_time', $start_time); Context::set('end_time', $end_time); // 스킨 목록을 구해옴 $oModuleModel = getModel('module'); $module_info = $oModuleModel->getModuleInfoByMid('attendance'); $skin_list = $oModuleModel->getSkins($this->module_path); Context::set('skin_list', $skin_list); $mskin_list = $oModuleModel->getSkins($this->module_path, "m.skins"); Context::set('mskin_list', $mskin_list); // 레이아웃 목록을 구해옴 $oLayoutModel = getModel('layout'); $layout_list = $oLayoutModel->getLayoutList(); Context::set('layout_list', $layout_list); $mobile_layout_list = $oLayoutModel->getLayoutList(0, "M"); Context::set('mlayout_list', $mobile_layout_list); // 모듈 카테고리 목록을 구함 $module_category = $oModuleModel->getModuleCategories(); Context::set('module_category', $module_category); // 공통 모듈 권한 설정 페이지 호출 $skin_content = $oModuleAdminModel->getModuleSkinHTML($module_info->module_srl); Context::set('skin_content', $skin_content); Context::set('module_info', $module_info); Context::set('module_srl', $module_info->module_srl); // 사용환경정보 전송 확인 $attendance_module_info = $oModuleModel->getModuleInfoXml('attendance'); $agreement_file = FileHandler::getRealPath(sprintf('%s%s.txt', './files/cache/attendance/attendance-', $attendance_module_info->version)); if (file_exists($agreement_file)) { $agreement = FileHandler::readFile($agreement_file); Context::set('_attendance_env_agreement', $agreement); if ($agreement == 'Y') { $_attendance_iframe_url = 'http://sosifam.com/index.php?mid=attendance_iframe'; $_host_info = urlencode($_SERVER['HTTP_HOST']) . '-NC' . $attendance_module_info->version . '-PHP' . phpversion() . '-XE' . __XE_VERSION__; Context::set('_attendance_iframe_url', $_attendance_iframe_url . '&_host=' . $_host_info); Context::set('attendance_module_info', $attendance_module_info); } } else { Context::set('_attendance_env_agreement', 'NULL'); } /*템플릿 설정*/ $this->setTemplatePath($this->module_path . 'tpl'); $this->setTemplateFile('index'); }
function procAttendanceAdminInsertAttendance() { if (date('t', mktime(0, 0, 0, 02, 1, zDate(date('YmdHis'), "Y"))) == 29) { $end_of_year = 366; } else { $end_of_year = 365; } $end_of_month = date('t', mktime(0, 0, 0, zDate(date('YmdHis'), "m"), 1, zDate(date('YmdHis'), "Y"))); $oModule = getModel('module'); $output = $oModule->getModuleConfig('attendance'); $oModuleController =& getController('module'); $obj = Context::getRequestVars(); if ($obj->continuity_day < 2) { $obj->continuity_day = 2; } if ($obj->diligence_yearly >= $end_of_year || $obj->diligence_yearly < 32) { $obj->diligence_yearly = $end_of_year - 1; } if ($obj->diligence_monthly >= $end_of_month || $obj->diligence_monthly < 8) { $obj->diligence_monthly = $end_of_month - 1; } if ($obj->diligence_weekly >= 7 || $obj->diligence_weekly < 1) { $obj->diligence_weekly = 6; } $config = new stdClass(); $config->about_admin_check = $obj->about_admin_check; $config->allow_duplicaton_ip_count = $obj->allow_duplicaton_ip_count; $config->about_auto_attend = $obj->about_auto_attend; $config->about_birth_day = $obj->about_birth_day; $config->about_birth_day_y = $obj->about_birth_day_y; $config->about_time_control = $obj->about_time_control; $config->start_time = sprintf("%02d%02d", $obj->start_hour, $obj->start_min); $config->end_time = sprintf("%02d%02d", $obj->end_hour, $obj->end_min); $config->about_diligence_yearly = $obj->about_diligence_yearly; $config->diligence_yearly = $obj->diligence_yearly; $config->diligence_yearly_point = $obj->diligence_yearly_point; $config->about_diligence_monthly = $obj->about_diligence_monthly; $config->diligence_monthly = $obj->diligence_monthly; $config->diligence_monthly_point = $obj->diligence_monthly_point; $config->about_diligence_weekly = $obj->about_diligence_weekly; $config->diligence_weekly = $obj->diligence_weekly; $config->diligence_weekly_point = $obj->diligence_weekly_point; $config->add_point = $obj->add_point; $config->first_point = $obj->first_point; $config->second_point = $obj->second_point; $config->third_point = $obj->third_point; $config->yearly_point = $obj->yearly_point; $config->monthly_point = $obj->monthly_point; $config->weekly_point = $obj->weekly_point; $config->about_target = $obj->about_target; $config->target_day = $obj->target_day; $config->target_point = $obj->target_point; $config->about_continuity = $obj->about_continuity; $config->continuity_day = $obj->continuity_day; $config->continuity_point = $obj->continuity_point; $config->about_random = $obj->about_random; $config->minimum = $obj->minimum; $config->maximum = $obj->maximum; $config->about_lottery = $obj->about_lottery; $config->lottery = $obj->lottery; $config->brithday_point = $obj->brithday_point; $config->continuity_monthly = $obj->continuity_monthly; $config->use_document = $obj->use_document; $config->use_random_sm = $obj->use_random_sm; $config->random_small_win = $obj->random_small_win; $config->random_small_point_f = $obj->random_small_point_f; $config->random_small_point_s = $obj->random_small_point_s; $config->random_big_point_f = $obj->random_big_point_f; $config->random_big_point_s = $obj->random_big_point_s; $config->giftname = $obj->giftname; $config->manygiftlist = $obj->manygiftlist; $config->gift_random = $obj->gift_random; $this->setMessage('success_updated'); $oModuleController->updateModuleConfig('attendance', $config); if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) { $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAttendanceAdminList'); header('location: ' . $returnUrl); return; } }
/** * @brief Auto Attend trigger **/ function triggerAutoAttend($obj) { $today = zDate(date('YmdHis'), "Ymd"); $arg = new stdClass(); $arg->day = $today; $arg->member_srl = $obj->member_srl; $output = executeQuery('attendance.getIsChecked', $arg); if ($output->data->count > 0) { $_SESSION['is_attended'] = $today; return; } //module의 설정값 가져오기 $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('attendance'); if ($config->about_auto_attend == 'yes') { $this->insertAttendance('yes', '^auto^', $obj->member_srl); } }
function dispAttendanceBoard() { $oModuleModel = getModel('module'); $oDocumentModel = getModel('document'); $module_info = $oModuleModel->getModuleInfoByMid('attendance'); $oModuleModel->syncSkinInfoToModuleInfo($module_info); $oAttendanceModel = getModel('attendance'); $oMemberModel = getModel('member'); $oAttendanceAdminModel = getAdminModel('attendance'); //날짜 초기화 $document_srl = Context::get('document_srl'); $selected_date = Context::get('selected_date'); if ($document_srl) { $oAttendance = $oAttendanceModel->getGreetingsData("#" . $document_srl); $selected_date = substr($oAttendance->regdate, 0, 8); } if (!$selected_date) { $selected_date = zDate(date('YmdHis'), "Ymd"); } $module_info->start_num = $oAttendanceModel->getPositionData($selected_date, "^showall^"); if (!$module_info->greetings_cut_size) { $module_info->greetings_cut_size = 20; } //module의 설정값 가져오기 $oModuleModel = getModel('module'); $config = $oModuleModel->getModuleConfig('attendance'); //출석가능 시간대인지 판단 $is_available = $oAttendanceModel->availableCheck($config); //오름차순, 내림차순에 따라 출력방법 결정 if ($module_info->order_type == 'desc') { $oAttendance = $oAttendanceModel->getInverseList($module_info->list_count, $selected_date); } else { $oAttendance = $oAttendanceModel->getAttendanceList($module_info->list_count, $selected_date); } $logged_info = Context::get('logged_info'); $args = new stdClass(); $args->member_srl = $logged_info->member_srl; $args->present_y = 'Y'; $args->today = $selected_date; $outputs = executeQuery('attendance.getTodayMyGiftList', $args); debugPrint($outputs); //출석달력 설정 $date_info = new stdClass(); $date_info->_year = substr($selected_date, 0, 4); $date_info->_month = substr($selected_date, 4, 2); $date_info->_day = substr($selected_date, 6, 2); $date_info->day_max = date("t", mktime(0, 0, 0, $date_info->_month, 1, $date_info->_year)); $date_info->week_start = date("w", mktime(0, 0, 0, $date_info->_month, 1, $date_info->_year)); Context::set('admin_date_info', $date_info); //변수 내보내기 Context::set('todaymygift', $outputs->data); Context::set('selected_date', $selected_date); Context::set('is_available', $is_available); Context::set('oAttendance', $oAttendance); Context::set('oDocumentModel', $oDocumentModel); Context::set('oAttendanceAdminModel', $oAttendanceAdminModel); Context::set('oAttendanceModel', $oAttendanceModel); Context::set('oMemberModel', $oMemberModel); Context::set('module_info', $module_info); Context::set('config', $config); $this->setTemplateFile('index'); }
<?php } ?> <a class="att-btn att-btn-primary" href="<?php echo getUrl('document_srl', '', 'selected_date', zDate(date('YmdHis'), 'Ymd')); ?> "><i class="fa fa-calendar"></i> 이번달</a> <?php if ($__Context->selected_date == date("Ymd") || !$__Context->is_logged) { ?> <span class="att-btn att-btn-primary disabled"><font color="#CCCCCC">다음달 <i class="fa fa-angle-double-right"></i></font></span> <?php } else { ?> <a class="att-btn att-btn-primary" href="<?php echo getUrl('document_srl', '', 'selected_date', zDate(date('YmdHis', mktime(0, 0, 0, $__Context->month + 1, $__Context->day, $__Context->year)), 'Ymd')); ?> " > 다음달 <i class="fa fa-angle-double-right"></i> </a> <?php } ?> </span> </div> <div class="sat" style="position:relative"> <table width="100%" class="table table-bordered "> <tr> <th>출석점수</th> <td style="font-weight:bold; color:#F33; text-align:left"> <?php
/** * @brief 주간 정근 여부 확인 */ function checkWeeklyDiligence($member_srl, $diligence_weekly, $today) { if (!$today) { $week = $this->getWeek(zDate(date('YmdHis'), "Ymd")); } else { $week = $this->getWeek($today); } $week_data = $this->getWeeklyData($member_srl, $week); if ($week_data->weekly) { if ($week_data->weekly == $diligence_weekly) { return 1; } } else { if ($diligence_weekly == 0) { return 1; } } return 0; }
echo $__Context->_day++; ?> </span><?php } else { echo $__Context->_day++; } ?> </span> <?php } else { ?> <?php if ($__Context->logged_info->is_admin == 'Y' || $__Context->checked == 1 && $__Context->is_logged) { ?> <a href="<?php echo getUrl('document_srl', '', 'selected_date', zDate(date('YmdHis', mktime(0, 0, 0, $__Context->admin_date_info->_month, $__Context->_day, $__Context->admin_date_info->_year)), 'Ymd')); ?> "> <?php } ?> <span<?php if ($__Context->j % 7 == 1) { ?> class="sunday"<?php } if ($__Context->j % 7 == 0) { ?> class="saturday"<?php } ?>
/** * @brief 회원 목록을 구함 **/ function getAttendanceMemberList($list, $new_type) { /*attendance model 객체 생성*/ $oAttendanceModel = getModel('attendance'); // 검색 옵션 정리 $args = new stdClass(); $args->is_admin = Context::get('is_admin') == 'Y' ? 'Y' : ''; $args->is_denied = Context::get('is_denied') == 'Y' ? 'Y' : ''; $args->selected_group_srl = Context::get('selected_group_srl'); $args->unjoined_members = Context::get('unjoined_members') == 'Y' ? 'Y' : ''; $type = $new_type; if (!$type) { $type = Context::get('type'); } $args->year = substr(Context::get('selected_date'), 0, 4); $args->year_month = substr(Context::get('selected_date'), 0, 6); $week = $oAttendanceModel->getWeek(Context::get('selected_date')); $args->monday = $week->monday; $args->sunday = $week->sunday; //날짜정보가 없으면 오늘로 초기화 if (!$args->year) { $args->year = zDate(date('YmdHis'), "Y"); } if (!$args->year_month) { $args->year_month = zDate(date('YmdHis'), "Ym"); } if (!$week->monday || !$week->sunday) { $week = $oAttendanceModel->getWeek(zDate(date('YmdHis'), "Ymd")); $args->monday = $week->monday; $args->sunday = $week->sunday; } $search_target = trim(Context::get('search_target')); $search_keyword = trim(Context::get('search_keyword')); if ($search_target && $search_keyword) { switch ($search_target) { case 'user_id': if ($search_keyword) { $search_keyword = str_replace(' ', '%', $search_keyword); } $args->s_user_id = $search_keyword; break; case 'user_name': if ($search_keyword) { $search_keyword = str_replace(' ', '%', $search_keyword); } $args->s_user_name = $search_keyword; break; case 'nick_name': if ($search_keyword) { $search_keyword = str_replace(' ', '%', $search_keyword); } $args->s_nick_name = $search_keyword; break; case 'email_address': if ($search_keyword) { $search_keyword = str_replace(' ', '%', $search_keyword); } $args->s_email_address = $search_keyword; break; case 'regdate': $args->s_regdate = preg_replace("/[^0-9]/", "", $search_keyword); break; case 'regdate_more': $args->s_regdate_more = substr(preg_replace("/[^0-9]/", "", $search_keyword) . '00000000000000', 0, 14); break; case 'regdate_less': $args->s_regdate_less = substr(preg_replace("/[^0-9]/", "", $search_keyword) . '00000000000000', 0, 14); break; case 'last_login': $args->s_last_login = $search_keyword; break; case 'last_login_more': $args->s_last_login_more = substr(preg_replace("/[^0-9]/", "", $search_keyword) . '00000000000000', 0, 14); break; case 'last_login_less': $args->s_last_login_less = substr(preg_replace("/[^0-9]/", "", $search_keyword) . '00000000000000', 0, 14); break; case 'extra_vars': $args->s_extra_vars = preg_replace("/[^0-9]/", "", $search_keyword); break; } } if ($type == 'day' || $type == 'speed_search') { // selected_group_srl이 있으면 query id를 변경 (table join때문에) if ($args->selected_group_srl) { $query_id = 'member.getMemberListWithinGroup'; $args->sort_index = "member.member_srl"; $args->sort_order = "desc"; } else { $query_id = 'member.getMemberList'; $args->sort_index = "member_srl"; $args->sort_order = "desc"; } } else { if ($type == 'rank_total') { // selected_group_srl이 있으면 query id를 변경 (table join때문에) if ($args->selected_group_srl) { $query_id = 'attendance.getMemberListWithinGroup'; $args->sort_index = "attendance_total.total"; } else { $query_id = 'attendance.getMemberList'; $args->sort_index = "attendance_total.total"; } //탈퇴한 회원 정보 찾기 위한 쿼리 수정 if ($args->unjoined_members) { $query_id = 'attendance.getUnJoinedMemberList'; $args->sort_index = 'attendance_total.total'; } } else { if ($type == 'rank_yearly') { // selected_group_srl이 있으면 query id를 변경 (table join때문에) if ($args->selected_group_srl) { $query_id = 'attendance.getMemberListWithinGroupYearly'; $args->sort_index = "attendance_yearly.yearly"; } else { $query_id = 'attendance.getMemberListYearly'; $args->sort_index = "attendance_yearly.yearly"; } //탈퇴한 회원 정보 찾기 위한 쿼리 수정 if ($args->unjoined_members) { $query_id = 'attendance.getUnJoinedMemberListYearly'; $args->sort_index = 'attendance_yearly.yearly'; } } else { if ($type == 'rank_monthly') { // selected_group_srl이 있으면 query id를 변경 (table join때문에) if ($args->selected_group_srl) { $query_id = 'attendance.getMemberListWithinGroupMonthly'; $args->sort_index = "attendance_monthly.monthly"; } else { $query_id = 'attendance.getMemberListMonthly'; $args->sort_index = "attendance_monthly.monthly"; } //탈퇴한 회원 정보 찾기 위한 쿼리 수정 if ($args->unjoined_members) { $query_id = 'attendance.getUnJoinedMemberListMonthly'; $args->sort_index = 'attendance_monthly.monthly'; } } else { if ($type == 'rank_weekly') { // selected_group_srl이 있으면 query id를 변경 (table join때문에) if ($args->selected_group_srl) { $query_id = 'attendance.getMemberListWithinGroupWeekly'; $args->sort_index = "attendance_weekly.weekly"; } else { $query_id = 'attendance.getMemberListWeekly'; $args->sort_index = "attendance_weekly.weekly"; } //탈퇴한 회원 정보 찾기 위한 쿼리 수정 if ($args->unjoined_members) { $query_id = 'attendance.getUnJoinedMemberListWeekly'; $args->sort_index = 'attendance_weekly.weekly'; } } } } } } // 기타 변수들 정리 $args->page = Context::get('page'); $args->list_count = $list; $args->page_count = 10; return executeQuery($query_id, $args); }