πŸ›οΈ HONGIKINGAN CMS Developer Manual

Version 202506 | Updated 2025-06-12
🌐 Language: πŸ‡°πŸ‡· ν•œκ΅­μ–΄ πŸ‡²πŸ‡³ Монгол πŸ‡ΊπŸ‡Έ English

4-2. ⚑ Core Features Advanced Features

4.6 Statistics and Logs

4.6.1 Access Statistics (Google, Optional)

Provides functionality to collect and analyze various statistical information about site visitors using Google Analytics (GA4).

Main Features

Statistical Data Collection Method

βš™οΈ Google Analytics Setup

Google Analytics setup through admin page

πŸ“Š Dashboard Visualization

Visualization through dashboard

Main Classes

Google Analytics Configuration (Actual Code)

[Code Location] Part of /WEB-INF/jsp/theme/developers/layout/base_layout.jsp page

<c:if test="${!empty curSiteVO.googleKey }">
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=${curSiteVO.googleKey}"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', '${curSiteVO.googleKey}');
</script>
</c:if>

4.6.2 Menu Statistics

Provides statistical information such as visitor count and page views for site menus.

Main Features

Statistical Data Collection Method

πŸ“ Log Recording

Log recording when users access

⏰ Scheduler Execution

Execute statistics data generation scheduler

πŸ“Š Visualization

Visualization through menu statistics menu

Main Classes

Menu Statistics Scheduler Code Excerpt (Actual Code)

[Code Location] humanframe.backoffice.scheduler.statsMenuSchedulerBatch

@Service("statsMenuScheduling")
public class statsMenuSchedulerBatch {

    @Resource(name="statsMenuService")
    private StatsMenuService statsMenuService;

    public void statsMenuMonth() throws Exception{
        
        String day = getYesterdayYmd();

        StatsMenuVO statsMenuVO = new StatsMenuVO();
        statsMenuVO.setStatsYyyy(day.substring(0,4));
        statsMenuVO.setStatsMm(day.substring(4,6));

        statsMenuService.deleteStatsMenuMonth(statsMenuVO);
        int result = statsMenuService.createStatsMenuMonth(statsMenuVO);
    }
}

4.6.3 Log Management

Provides functionality to manage system logs and user activity logs.

Main Features

Main Classes

Log Recording AOP Code (Actual Code)

[Code Location] humanframe.backoffice.aop.aspect.admin.AdminLogAspect

@Aspect
@Order(2)
@Component
public class AdminLogAspect {

    @Resource(name = "mngLogService")
    private MngLogService mngLogService;

    // Admin permission check
    @Pointcut("execution(* humanframe.backoffice..Admin*Controller.form(..))"
            + "|| execution(* humanframe.backoffice..Admin*Controller.list(..))"
            + "|| execution(* humanframe.backoffice..Admin*Controller.view(..))"
            + "|| execution(* humanframe.backoffice..Admin*Controller.action(..))"
            + "|| execution(* humanframe.backoffice..Admin*Controller.logout(..))")
    private void checkAdminLog() {}

    @Before(value = "checkAdminLog()")
    private void beforecheckAdminLog(
            JoinPoint joinPoint)throws Exception {
        // ... Omitted (log storage logic) ...
    }
}

4.7 Scheduler

4.7.1 Batch Job Configuration

Provides functionality to configure and manage jobs that need to be executed periodically.

Main Features

Scheduler Configuration Code Excerpt (Actual Code)

[Code Location] humanframe/spring/context-scheduler.xml

<bean id="bbsCreateTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <property name="jobDetail" ref="bbsCreateJob" />
    <property name="cronExpression" value="0 */10 * * * ?" />
</bean>
<bean id="statsMenuYearTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <property name="jobDetail" ref="statsMenuYearCreateJob" />
    <property name="cronExpression" value="0 0 0 1 1 ?" />
</bean>
<bean id="statsMenuMonthTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <property name="jobDetail" ref="statsMenuMonthCreateJob" />
    <property name="cronExpression" value="0 0 0 1 * ?" />
</bean>

4.7.2 Periodic Task Management

Manages periodic tasks provided by default in HONGIKINGAN CMS.

Main Tasks

Main Classes

Scheduler Code Excerpt (Actual Code)

[Code Location] humanframe.backoffice.scheduler.BbsSchedulerBatch

public class BbsSchedulerBatch extends HumanAbstractController {

    @Resource(name="bbsMiniService")
    private BbsMiniService bbsMiniService;
    
    /**
     * Mini board JSON data generation
     */
    public void bbsCreate() throws Exception {
        int result = 0;
        List<Map<String, Object>> bbsMiniAllList = bbsMiniService.selectMiniListAll();

        if(!bbsMiniAllList.isEmpty()) {
            // JSON file generation
        }
        Map<String, Object> resultObjectMap = new HashMap<String, Object>();
        resultObjectMap.put("count", result);
        logger.info("##### Json " +result+ " items generated successfully");
        logger.info("##### Json Create End");
    }
}

4.8 Server Environment and System Features

4.8.1 Development Server Environment

HONGIKINGAN CMS operates in the following server environment:

🌐

WAS

Apache Tomcat-9.0.80

β˜•

JDK

OpenJDK-1.8.0.252

4.8.2 Main System Features

HONGIKINGAN CMS provides the following main system features:

πŸ”Encryption

  • AES256, SHA-256 algorithm support
  • Personal information and password encryption

⏰Scheduling

  • Quartz-based scheduler
  • Configuration in context-scheduler.xml

πŸ“§Mail Function

  • SMTP-based mail sending
  • Template-based mail content composition

πŸ“ŠExcel Upload/Download

  • Utilizing Apache POI library
  • Large data processing support
  • Mixed use of JSP Excel download (HTML Table method)

πŸ“File Upload/Download

  • Multiple file upload
  • File type and size restrictions
  • Download permission management

✏️Web Editor

  • SMART, KUKUDOCS, EDITORPLUS support
  • Image upload and management features

🎨Layout

  • Apache Tiles (version 3.0.5) based layout management
  • Template-based page composition

4.9 Utility Classes

HONGIKINGAN CMS provides various utility classes to enhance development convenience.

Main Utility Classes

πŸ“FileUtil

File write/read processing, file extension validation

FileUtil Class Usage Example
String fileString = FileUtil.readFile(filePath);

πŸ”§HumanComUtil

Common utility, direct Bean object retrieval

HumanBbsUtil Class Usage Example
MngrSiteService mngrSiteService = (MngrSiteService)HumanComUtil.getBean("mngrSiteService");

πŸ”HumanCryptoUtil

Encryption/decryption functionality, ARIA+Base64 algorithm support

HumanCryptoUtil Class Usage Example
String encryptedText = HumanCryptoUtil.encrypt(plainText);
String plainText = HumanCryptoUtil.decrypt(encryptedText);

🌐HumanHttpUtil

HTTP request/response processing, REST API calls

HumanHttpUtil Class Usage Example
String response = HumanHttpUtil.getHttpForm(url, paramMap);

πŸ“§HumanMailUtil

Mail sending functionality, template-based mail content composition

HumanMailUtil Class Usage Example
HumanMailUtil.sendMail(from, to, subject, content);

πŸ”HumanReqUtil

HTTP request analysis utility, real client IP address extraction

HumanReqUtil Class Usage Example
String ip = HumanReqUtil.getIp(request);

πŸ“HumanStringUtil

String processing, encoding conversion

HumanStringUtil Class Usage Example
String stringDate = HumanStringUtil.convertDateFormat(date, "yyyy-MM-dd" );

πŸ”—HumanUriUtil

URI generation based on site information/menu information

HumanUriUtil Class Usage Example
String formUri = HumanUriUtil.getCurrUri(curSite, curMenu);

πŸ‘€LoginManager

Login session management

LoginManager Class Usage Example
LoginManager loginManager = LoginManager.getInstance();
loginManager.setSession(session, mngrVO.getMngrId());

4.10 Tag Library

HONGIKINGAN CMS provides various tag libraries to facilitate JSP page development.

common/taglibs.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="f" %>
<%@ taglib uri="/WEB-INF/tld/double-submit" prefix="double-submit"  %>
<%@ taglib uri="/WEB-INF/tld/cms.tld" prefix="cms" 	 %>
<%@ taglib uri="/WEB-INF/tld/cms-function.tld" prefix="cmsFn" %>
<%@ taglib uri="/WEB-INF/tld/cms-button.tld" prefix="cmsBtn" %>
<%@ taglib uri="/WEB-INF/tld/cms-button2.tld" prefix="cmsBtn2" %>

Main Tag Libraries

🏷️cms.tld

Basic CMS tags, paging, CCL related tags

cms.tld Usage Example
<cms:paging listVO="${listVO}"
                    firstIcon="<i class='fa fa-angle-double-left'></i>"
                    prevIcon="<i class='fa fa-angle-left'></i>"
                    nextIcon="<i class='fa fa-angle-right'></i>"
                    lastIcon="<i class='fa fa-angle-double-right'></i>"
                    cssClass="pagination pull-right"/>

πŸ”˜cms-button.tld

Board button related tags, button display control according to permissions

cms-button.tld Usage Example
<cmsBtn:list admin="true" cssClass="btn btn-default">List</cmsBtn:list>

πŸ”˜cms-button2.tld

Admin general button related tags, button display control according to permissions

cms-button2.tld Usage Example
<cmsBtn2:btn btnTy="save" path="${curPath}" mngrSession="${mngrSession }" >Save</cmsBtn2:btn>

βš™οΈcms-function.tld

Utility functions, string processing, date processing, etc.

cms-function.tld Usage Example
${cmsFn:convertDate(item.value, 'yyyy.MM.dd') }

πŸ›‘οΈdouble-submit.tld

Duplicate submission prevention tag, session-based token management, CSRF prevention, multi-form support

double-submit.tld Usage Example
<button type="submit" class="btn btn-primary hidden-xs">Apply Account</button>
<double-submit:preventer/>

4.11 Admin Page Main Function-Related Sources

The admin page of HONGIKINGAN CMS provides various functions, and it is important to understand the source code related to each function. This section explains the source code structure related to the main functions of the admin page.

4.11.1 Login and Authentication Related Sources

The source code related to admin login and authentication is as follows.

Main Classes

Category Class Name Description
Controller humanframe.backoffice.controller.login.AdminLoginController Login controller
Utility humanframe.backoffice.util.LoginManager Login management utility
Interceptor humanframe.backoffice.interceptor.CMSAdminInterceptor Admin interceptor
Session humanframe.backoffice.session.MngrSession Admin session

Main JSP Files

πŸ”„

Authentication Processing Flow

Login request β†’ AdminLoginController β†’ LoginManager β†’ Authentication processing β†’ MngrSession creation β†’ Main page navigation

4.11.2 Menu Management Related Sources

The source code related to admin menu management functionality is as follows.

Main Classes

Category Class Name
Controller humanframe.backoffice.controller.mng.AdminMngMenuController
Service humanframe.backoffice.service.impl.MngMenuServiceImpl
DAO humanframe.backoffice.dao.MngMenuDAO
VO humanframe.backoffice.vo.MngMenuVO

Main Files

4.11.3 Board Management Related Sources

The source code related to board management functionality is as follows.

Main Controllers

Controller Description
AdminBbsController Board management
AdminBbsSettingController Board settings
AdminBbsType1Controller General board
AdminBbsType2Controller Reply board
AdminBbsType3Controller Image board
AdminBbsType4Controller Video board
AdminBbsType5Controller Q&A board
AdminBbsType6Controller FAQ board
AdminBbsType7Controller Schedule board
AdminBbsType8Controller Link board

Main Services and DAOs

Main Files

4.11.4 Member Management Related Sources

πŸ‘₯Main Classes

  • Controller: humanframe.backoffice.controller.mber.AdminMberController
  • Service: humanframe.backoffice.service.impl.MberServiceImpl
  • DAO: humanframe.backoffice.dao.MberDAO
  • VO: humanframe.backoffice.vo.MberVO

Main Files

  • JSP: /WEB-INF/jsp/admin/mber/list.jsp, form.jsp, view.jsp
  • SQL Mapper: human-mber.xml

4.11.5 Content Management Related Sources

πŸ“„Main Classes

  • Controller: humanframe.backoffice.controller.cntnts.AdminCntntsController
  • Service: humanframe.backoffice.service.impl.CntntsServiceImpl
  • DAO: humanframe.backoffice.dao.CntntsDAO
  • VO: humanframe.backoffice.vo.CntntsVO

Main Files

  • JSP: /WEB-INF/jsp/admin/cntnts/list.jsp, form.jsp, view.jsp
  • SQL Mapper: human-cntnts.xml, human-cntnts-hist.xml

4.11.6 Banner Management Related Sources

🎯Main Classes

  • Controller: humanframe.backoffice.controller.banner.AdminBannerController
  • Service: humanframe.backoffice.service.impl.BannerServiceImpl
  • DAO: humanframe.backoffice.dao.BannerDAO
  • VO: humanframe.backoffice.vo.BannerVO

Main Files

  • JSP: /WEB-INF/jsp/admin/banner/list.jsp, form.jsp, view.jsp
  • SQL Mapper: human-banner.xml

4.11.7 Popup Management Related Sources

πŸͺŸMain Classes

  • Controller: humanframe.backoffice.controller.popup.AdminPopupController
  • Service: humanframe.backoffice.service.impl.PopupServiceImpl
  • DAO: humanframe.backoffice.dao.PopupDAO
  • VO: humanframe.backoffice.vo.PopupVO

Main Files

  • JSP: /WEB-INF/jsp/admin/popup/list.jsp, form.jsp, view.jsp
  • SQL Mapper: human-popup.xml

4.11.8 Menu Statistics Management Related Sources

πŸ“ŠMain Classes

  • Controller: humanframe.backoffice.controller.stats.AdminStatsMenuController
  • Service: humanframe.backoffice.service.impl.StatsMenuServiceImpl
  • DAO: humanframe.backoffice.dao.StatsMenuDAO
  • VO: humanframe.backoffice.vo.StatsMenuVO
  • Scheduler: humanframe.backoffice.scheduler.statsMenuSchedulerBatch

Main Files

  • JSP: /WEB-INF/jsp/admin/stats/menu/list.jsp, excel.jsp
  • SQL Mapper: human-stats_menu.xml

4.11.9 System Management Related Sources

The source code related to system management functionality is as follows.

Main Controllers

Controller Description
AdminCodeController Code management
AdminMngrController Admin management
AdminMngAuthorController Permission management
AdminMngMenuController System menu management

Main Services

Main Files