- Timestamp:
- 06/18/2008 05:48:10 PM (3 months ago)
- Location:
- sandbox
- Files:
-
- 1 removed
- 9 modified
-
modules/session/queries/getLoggedMembers.xml (modified) (1 diff)
-
modules/session/queries/getLoogedMemberList.xml (deleted)
-
modules/session/queries/insertSession.xml (modified) (1 diff)
-
modules/session/queries/updateSession.xml (modified) (1 diff)
-
modules/session/schemas/session.xml (modified) (1 diff)
-
modules/session/session.class.php (modified) (3 diffs)
-
modules/session/session.controller.php (modified) (1 diff)
-
modules/session/session.model.php (modified) (2 diffs)
-
widgets/logged_members/conf/info.xml (modified) (1 diff)
-
widgets/logged_members/logged_members.class.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
sandbox/modules/session/queries/getLoggedMembers.xml
r4290 r4292 8 8 <conditions> 9 9 <condition operation="more" column="last_update" var="last_update" notnull="notnull" /> 10 <condition operation="equal" column="cur_mid" var="mid" pipe="and" /> 10 11 </conditions> 11 12 <navigation> -
sandbox/modules/session/queries/insertSession.xml
r4290 r4292 10 10 <column name="ipaddress" default="ipaddress()" /> 11 11 <column name="last_update" default="curdate()" /> 12 <column name="cur_mid" var="cur_mid" /> 12 13 </columns> 13 14 </query> -
sandbox/modules/session/queries/updateSession.xml
r4290 r4292 9 9 <column name="ipaddress" default="ipaddress()" /> 10 10 <column name="last_update" default="curdate()" /> 11 <column name="cur_mid" var="cur_mid" /> 11 12 </columns> 12 13 <conditions> -
sandbox/modules/session/schemas/session.xml
r4290 r4292 6 6 <column name="ipaddress" type="varchar" size="128" notnull="notnull" /> 7 7 <column name="last_update" type="date" index="idx_session_update" /> 8 <column name="cur_mid" type="varchar" size="128" index="idx_session_cur_mid" /> 8 9 </table> -
sandbox/modules/session/session.class.php
r4291 r4292 26 26 $oModuleController->insertActionForward('session', 'view', 'dispSessionAdminIndex'); 27 27 28 $oDB = &DB::getInstance(); 29 $oDB->addIndex("session","idx_session_update_mid", array("last_update","cur_mid")); 30 28 31 return new Object(); 29 32 } … … 39 42 40 43 if(!$oDB->isTableExists('session')) return true; 44 45 if(!$oDB->isColumnExists("session","cur_mid")) return true; 46 47 if(!$oDB->isIndexExists("session","idx_session_update_mid")) return true; 41 48 42 49 return false; … … 55 62 if(!$oModuleModel->getActionForward('dispSessionAdminIndex')) 56 63 $oModuleController->insertActionForward('session', 'view', 'dispSessionAdminIndex'); 64 65 if(!$oDB->isColumnExists("session","cur_mid")) { 66 $oDB->addColumn('session',"cur_mid","varchar",128); 67 } 68 69 if(!$oDB->isIndexExists("session","idx_session_update_mid")) 70 $oDB->addIndex("session","idx_session_update_mid", array("last_update","cur_mid")); 71 57 72 } 58 73 -
sandbox/modules/session/session.controller.php
r4290 r4292 35 35 $args->expired = date("YmdHis", time()+$this->lifetime); 36 36 $args->val = $val; 37 $args->cur_mid = Context::get('mid'); 38 if(!$args->cur_mid) { 39 $module_info = Context::get('current_module_info'); 40 $args->cur_mid = $module_info->mid; 41 } 37 42 38 43 if(Context::get('is_logged')) { -
sandbox/modules/session/session.model.php
r4290 r4292 28 28 $oDB = &DB::getInstance(); 29 29 if(!$oDB->isTableExists('session')) $oDB->createTableByXmlFile($this->module_path.'schemas/session.xml'); 30 if(!$oDB->isColumnExists("session","cur_mid")) $oDB->addColumn('session',"cur_mid","varchar",128); 31 $output = executeQuery('session.getSession', $args); 32 } 33 34 // 세션 정보에서 cur_mid값이 없을 경우 테이블 생성 체크 35 if(!isset($output->data->cur_mid)) { 36 $oDB = &DB::getInstance(); 37 if(!$oDB->isColumnExists("session","cur_mid")) $oDB->addColumn('session',"cur_mid","varchar",128); 30 38 } 31 39 … … 35 43 /** 36 44 * @brief 현재 접속중인 사용자의 목록을 구함 37 * period_time 인자의 값을 n으로 하여 최근 n분 이내에 세션을 갱신한 대상을 추출함 45 * 여러개의 인자값을 필요로 해서 object를 인자로 받음 46 * limit_count : 대상 수 47 * page : 페이지 번호 48 * period_time : 인자의 값을 n으로 하여 최근 n분 이내에 세션을 갱신한 대상을 추출함 49 * mid : 특정 mid에 속한 사용자 38 50 **/ 39 function getLoggedMembers($limit_count = 20, $page = 1, $period_time = 3) { 40 $args->last_update = date("YmdHis", time() - $period_time*60); 41 $args->page = $page; 51 function getLoggedMembers($args) { 52 if(!$args->limit_count) $args->limit_count = 20; 53 if(!$args->page) $args->page = 1; 54 if(!$args->period_time) $args->period_time = 3; 55 $args->last_update = date("YmdHis", time() - $args->period_time*60); 42 56 43 57 $output = executeQueryArray('session.getLoggedMembers', $args); -
sandbox/widgets/logged_members/conf/info.xml
r4290 r4292 14 14 <description xml:lang="ko">출력될 목록의 수를 정하실 수 있습니다. (기본 5개)</description> 15 15 </var> 16 <var id="use_mid"> 17 <name xml:lang="ko">대상 지정</name> 18 <type>select</type> 19 <description xml:lang="ko">대상을 전체로 하면 홈페이지 접속자 모두가 출력되고 Mid 구분으로 하게 되면 접속한 Mid에 같이 접속한 회원만 출력이 됩니다.</description> 20 <options> 21 <name xml:lang="ko">전체</name> 22 <value>total</value> 23 </options> 24 <options> 25 <name xml:lang="ko">Mid 구분</name> 26 <value>mid</value> 27 </options> 28 </var> 16 29 </extra_vars> 17 30 </widget> -
sandbox/widgets/logged_members/logged_members.class.php
r4290 r4292 17 17 function proc($args) { 18 18 19 // 위젯 자체적으로 설정한 변수들을 체크20 19 $list_count = (int)$args->list_count; 21 20 if(!$list_count) $list_count = 5; 22 21 22 $use_mid = $args->use_mid; 23 if($use_mid == 'mid') $mid = Context::get('mid'); 24 else $mid = null; 25 26 $obj->list_count = $list_count; 27 $obj->mid = $mid; 28 23 29 // session model 객체 생성 24 30 $oSessionModel = &getModel('session'); 25 $output = $oSessionModel->getLoggedMembers($ list_count);31 $output = $oSessionModel->getLoggedMembers($obj); 26 32 $widget_info->member_list = $output->data; 27 33 Context::set('widget_info', $widget_info);