팁/튜토리얼

setUserSequence($seq)

2015.07.28 13:59
3,067
0
0

정의 위치

  • ./config/func.inc.php

정의 내용

/**
 * Set Sequence number to session
 *
 * @param int $seq sequence number
 * @return void
 */
function setUserSequence($seq)
{
    $arr_seq = array();
    if(isset($_SESSION['seq']))
    {
        $arr_seq = $_SESSION['seq'];
    }
    $arr_seq[] = $seq;
    $_SESSION['seq'] = $arr_seq;
}

 

용도

  • 시퀀스 번호에 대해서 이 세션에 권한을 허용한다는 표시해두는 용도로 사용합니다.
  • 단순히 권한이 있다 없다(논리값)를 저장하기만 합니다. setUserSequence() 로 호출되거나 getNextSequence()로 이 세션에서 생성한 시퀀스일 경우 checkUserSequence() 는 boolen TRUE를 반환합니다.

파라메터

  • integer $seq : 설정할 시퀀스 값을 전달합니다. 전달된 값은 세션에 저장됩니다.

예시

  1. ./modules/editor/editor.model.php 중 getSavedDoc() 메소드
    • /**
       * @brief Get information which has been auto-saved
       */
      function getSavedDoc($upload_target_srl)
      {
          $auto_save_args = new stdClass();
          // Find a document by using member_srl for logged-in user and ipaddress for non-logged user
          if(Context::get('is_logged'))
          {
              $logged_info = Context::get('logged_info');
              $auto_save_args->member_srl = $logged_info->member_srl;
          }
          else
          {
              $auto_save_args->ipaddress = $_SERVER['REMOTE_ADDR'];
          }
          $auto_save_args->module_srl = Context::get('module_srl');
          // Get the current module if module_srl doesn't exist
          if(!$auto_save_args->module_srl)
          {
              $current_module_info = Context::get('current_module_info');
              $auto_save_args->module_srl = $current_module_info->module_srl;
          }
          // Extract auto-saved data from the DB
          $output = executeQuery('editor.getSavedDocument', $auto_save_args);
          $saved_doc = $output->data;
          // Return null if no result is auto-saved
          if(!$saved_doc) return;
          // Check if the auto-saved document already exists
          $oDocumentModel = getModel('document');
          $oSaved = $oDocumentModel->getDocument($saved_doc->document_srl);
          if($oSaved->isExists()) return;
          // Move all the files if the auto-saved data contains document_srl and file
          // Then set document_srl to editor_sequence
          if($saved_doc->document_srl && $upload_target_srl && !Context::get('document_srl'))
          {
              $saved_doc->module_srl = $auto_save_args->module_srl;
              $oFileController = getController('file');
              $oFileController->moveFile($saved_doc->document_srl, $saved_doc->module_srl, $upload_target_srl);
          }
          else if($upload_target_srl) $saved_doc->document_srl = $upload_target_srl;
          // Change auto-saved data
          $oEditorController = getController('editor');
          $oEditorController->deleteSavedDoc(false);
          $oEditorController->doSaveDoc($saved_doc);

          setUserSequence($saved_doc->document_srl);

          return $saved_doc;
      }

       

댓글 0