Source for file rainBoard.php

Documentation is available at rainBoard.php

  1. <?
  2.  
  3. /**  
  4.  * ·¹ÀΠ°Ô½ÃÆÇ - °´Ã¼ÁöÇâÀû°Ô½ÃÆÇ
  5.  * @package com.rain
  6.  * @version 9.0
  7.  * @author http://cafen.net (outmind@cafen.net)
  8. */
  9. class rainBoard {
  10.     /**  
  11.      * °Ô½ÃÆÇ ¾ÆÀ̵ð
  12.      *
  13.      * @var String 
  14.     */
  15.     var $board_id = "";
  16.  
  17.     /**  
  18.      * MYSQL CLASS
  19.      *
  20.      * @var rainMysql 
  21.     */
  22.     var $db_class = null;
  23.  
  24.     /**  
  25.      * ±âº» Äõ¸®
  26.      *
  27.      * @var String 
  28.     */
  29.     var $base_query = "";
  30.  
  31.     /**  
  32.      * ¸¶Áö¸· ÀԷ °íÀ¯¹øÈ£
  33.      *
  34.      * @var Int 
  35.     */
  36.     var $last_muid;
  37.  
  38.     /**  
  39.      * ¿À·ù ¸Þ¼¼Áö
  40.      *
  41.      * @var String 
  42.     */
  43.     var $error_msg = "";
  44.  
  45.     /**  
  46.      * °Ô½ÃÆÇ È¯°æ Á¤º¸
  47.      *
  48.      * @var rainProperties 
  49.     */
  50.     var $board_conf = null;
  51.  
  52.     
  53.     /**
  54.      * »ý¼ºÀÚ
  55.      *
  56.      * @param  String  °Ô½ÃÆÇ ¾ÆÀ̵ð
  57.     */
  58.     function rainBoard($board_id{
  59.         $this->board_conf = new rainProperties("board_" $board_id);
  60.         $this->db_class = new rainMysql("mysql");
  61.         $this->board_id = $board_id;
  62.         $this->base_query = "select * from multi_board where board_id = '" $this->board_id . "' ";
  63.     }
  64.  
  65.     /**
  66.      *  °Ô½ÃÆÇ È¯°æ Á¤º¸ Àбâ
  67.      *
  68.      * @param  String      ÀÐÀ» Å°°ª
  69.      * @return  String         value
  70.     */
  71.     function getConf($name{
  72.         return $this->board_conf->get($name);
  73.     }
  74.  
  75.     /**
  76.      * ±ÇÇÑ È®ÀÎ
  77.      *
  78.      * @param  String  »óű¸ºÐ [BOARD :°Ô½ÃÆÇÈ®ÀÎ, REPLY : ´äº¯±ÇÇÑ È®ÀÎ, WRITE : ÀÛ¼º±ÇÇÑ, TAIL : µ¡±Û »ç¿ë¿©ºÎ]
  79.      * @return  Boolean ±ÇÇÑ ¿©ºÎ
  80.     */
  81.     function checkAuth ($mode{
  82.         switch($mode{
  83.             case 'BOARD' :
  84.                 return ($this->board_conf->file_loadedtrue:false;
  85.                 break;
  86.             case 'REPLY' :
  87.             case 'WRITE' :
  88.                 $mode_value $this->getConf(($mode == 'REPLY')?"reply_mode":"write_mode");
  89.                 switch($mode_value{
  90.                     case 'A' :
  91.                         return rainUtil::chkUser('');
  92.                         break;
  93.                     case 'M' :
  94.                         return rainUtil::isLogined();
  95.                         break;
  96.                     case '' :
  97.                         return true;
  98.                         break;
  99.                     default 
  100.                         return rainUtil::chkUser($mode_value);
  101.                         break;
  102.                 }
  103.                 break;
  104.             case 'TAIL' :
  105.                 $mode $this->getConf("tail_mode");
  106.                 return ($modetrue:false;
  107.                 break;
  108.             default 
  109.                 return false;
  110.                 break;
  111.         }
  112.     }
  113.  
  114.     /**
  115.      *  µ¡±Û Class °¡Á®¿À±â
  116.      *
  117.      * @param  Int ±Û °íÀ¯¹øÈ£
  118.      * @return  rainTail µ¡±Û Class
  119.     */
  120.     function getTailClass($muid{
  121.         return new rainTail($this->board_id$muid);
  122.     }
  123.  
  124.     /**
  125.      *  °Ô½ÃÆÇ ¸ñ·Ï °¡Á®¿À±â
  126.      *
  127.      * @param  Int ÇöÀç ¶óÀιøÈ£
  128.      * @param  rainRequest Request °´Ã¼
  129.      * @param  Int °¡Á®¿Ã ±Û °¹¼ö
  130.      * @return  rainData °Ô½ÃÆÇ ¸ñ·Ï
  131.     */
  132.     function getList($cline$req $getnum{
  133.         $qm $this->base_query;
  134.         if ($req->get("sk"!= ''{
  135.             $sk rainUtil::addslashesQuery($req->get("sk"));
  136.             switch($req->get("so")) {
  137.                 case 'T' :
  138.                     $qm .= "  and title like '%"$sk ."%' ";
  139.                     break;
  140.                 case 'N' :
  141.                     $qm .= "  and user_nm like '%"$sk ."%' ";
  142.                     break;
  143.                 case 'C' :
  144.                     $qm .= "  and contents_text like '%"$sk ."%' ";
  145.                     break;
  146.                 default 
  147.                     $qm .= "  and (title like '%"$sk ."%' or user_nm like '%"$sk ."%' or contents_text like '%"$sk ."%') ";
  148.                     break;
  149.             }
  150.         }
  151.         $qm .= " order by board_uid desc ";
  152.         return $this->db_class->query2Array($qm$cline$getnum);
  153.     }
  154.     
  155.     /**
  156.      *  °Ô½ÃÆÇ ±Û ³»¿ë°¡Á®¿À±â
  157.      *
  158.      * @param  Int ±Û °íÀ¯¹øÈ£
  159.      * @param  Boolean Á¶È½¼ö Ãß°¡ ¿©ºÎ
  160.      * @return  rainData 
  161.     */
  162.     function getView($muid$addhits false{
  163.         if ($addhits{
  164.             $boardhit new rainBoardHit($muid);
  165.             $boardhit->insertData();
  166.         }
  167.         $qm $this->base_query ." and muid = '" $muid "' ";
  168.         return $this->db_class->queryFetch($qm);
  169.     }
  170.  
  171.     /**
  172.      *  ÀÌÀü±Û °¡Á®¿À±â
  173.      *
  174.      * @param  Int ±âÁØ ±Û ¹øÈ£
  175.      * @return  rainData 
  176.     */
  177.     function getPrev($board_uid{
  178.         $qm $this->base_query . " and board_uid > '"$board_uid ."' order by board_uid asc ";
  179.         return $this->db_class->queryFetch($qm);
  180.     }
  181.  
  182.     /**
  183.      *  ´ÙÀ½±Û °¡Á®¿À±â
  184.      *
  185.      * @param  Int ±âÁØ ±Û ¹øÈ£
  186.      * @return  rainData 
  187.     */
  188.     function getNext($board_uid{
  189.         $qm $this->base_query . " and board_uid < '" $board_uid "' order by board_uid desc ";
  190.         return $this->db_class->queryFetch($qm);
  191.     }
  192.  
  193.     /**
  194.      *  °Ô½ÃÆÇ °ü·Ã URL °¡Á®¿À±â
  195.      *
  196.      * @param  String »óÅ [view : º¸±â, list : ¸ñ·Ï]
  197.      * @return  String URL
  198.     */
  199.     function getUrl($mode{
  200.         if ($mode == "view")
  201.             return $this->getConf("url_view""?board_id=" $this->board_id . "&muid=" $this->last_muid;
  202.         else
  203.             return $this->getConf("url_list""?board_id=" $this->board_id;
  204.     }
  205.  
  206.     /**
  207.      * °Ô½ÃÆÇ ÀÚ·á »èÁ¦
  208.      *
  209.      * @param  Int ±Û °íÀ¯¹øÈ£
  210.      * @param  String °ü¸® ¾ÏÈ£
  211.      * @return  Boolean »èÁ¦¼º°ø¿©ºÎ
  212.     */
  213.     function deleteData($muid$passwd ''{
  214.         if ($this->checkPass($muid$passwd)) {
  215.             $old_result $this->getView($muid);
  216.             if ($old_result->first()) {
  217.                 $rfile new rainFile(rainUtil::getConf("path_uploads"));
  218.                 $old_contents $old_result->getString("contents");
  219.                 $rfile->RainEditAttachSaveDelete(""$old_contents);
  220.             }
  221.             $tail_class $this->getTailClass($muid);
  222.             $tail_class->deleteAllData();
  223.             $boardhit new rainBoardHit($muid);
  224.             $boardhit->deleteAllData();
  225.             $this->db_class->change("delete from multi_board where muid = '" $muid "' ");
  226.             return true;
  227.         else {
  228.             $this->error_msg = "ÇØ´ç ±ÛÀÇ Á¢±Ù ±ÇÇÑÀÌ ¾ø½À´Ï´Ù";
  229.             return false;
  230.         }
  231.     }
  232.  
  233.     /**
  234.      *  °Ô½ÃÆÇ Á¢±Ù ±ÇÇÑ È®ÀÎ
  235.      * @param  Int             ±Û °íÀ¯¹øÈ£
  236.      * @param String         °ü¸® ¾ÏÈ£
  237.      * @return  Boolean     Á¢±Ù °¡´É ¿©ºÎ
  238.     */
  239.     function checkPass($muid$passwd{
  240.         $result $this->getView($muid);
  241.         if ($result->first()) {
  242.             $old_passwd $result->getString("user_pw");
  243.             $user_id $result->getString("user_id");
  244.             if (rainUtil::chkUser($user_id|| rainUtil::chkPass($old_passwd$passwd))
  245.                 return true;
  246.             else
  247.                 return false;
  248.         else
  249.             return false;
  250.     }
  251.     
  252.     /**
  253.      *  °Ô½ÃÆÇ ±Û ÀÛ¼º
  254.      *
  255.      * @param  rainRequest     ÀԷ ¹ÞÀ» µ¥ÀÌŸ
  256.      * @param  Int                     °ü·Ã ´ä±Û
  257.      * @return  Boolean            ÀԷ ¼º°ø ¿©ºÎ
  258.     */
  259.     function insertData($req$reply_uid 0{
  260.         if (!rainUtil::chkAuth($req->get("authcode"))) {
  261.             $this->error_msg = "ÀÎÁõÄڵ尡 ´Þ¶ó¼­ Ã³¸® ÇÒ¼ö ¾ø½À´Ï´Ù <br><br>¹Ù¸¥ÀÎÁõÄÚµå(<u>" rainUtil::getPassCode(."</u>) ";
  262.             return false;
  263.         else if (!$this->checkAuth(($reply_uid == 0)?'WRITE':'REPLY')) {
  264.             $this->error_msg = "ÇØ´ç °Ô½ÃÆÇÀÇ Á¢±Ù ±ÇÇÑÀÌ ¾ø½À´Ï´Ù.<br>±ÇÇÑÀ» °ü¸®ÀÚ¿¡°Ô ¹®ÀÇ ¹Ù¶ø´Ï´Ù. ";
  265.             return false;
  266.         }
  267.         $muid $this->db_class->getLastID("multi_board""muid");
  268.         $rfile new rainFile(rainUtil::getConf("path_uploads"));
  269.         $title rainUtil::htmlSpecialchars($req->get("title"));
  270.         $contents$req->get("contents");
  271.         $contents $rfile->rainEditAttachSaveDelete($contents);
  272.         $contents_view rainUtil::addslashes($rfile->rainContents_html);
  273.         $contents_text $rfile->stripTags($rfile->rainContents_html);
  274.         $contents_attach $rfile->rainAttachParse(false);
  275.         $contents_image $rfile->rainAttach_image;
  276.         $is_movie $rfile->rainAttach_movie;
  277.         $attach_size $rfile->totalattach_size;
  278.         $user_id =  $req->getID();
  279.         $user_nm =  $req->getName($req->get("user_nm"));
  280.         $user_email $req->getEmail($req->get("user_email"));
  281.         $user_pw $req->get("user_pw");
  282.         $user_ip $req->getIP();
  283.         $board_uid "";
  284.         $board_dep "";
  285.         $qm "";
  286.         if ($reply_uid == 0{
  287.             $board_uid $this->db_class->queryOne("select ifnull(max(board_uid)+1,1) as board_uid from multi_board where board_id = '" $this->board_id . "' ");
  288.             $board_dep "0";
  289.         else{
  290.             $qm "select board_uid, board_dep+1 as board_dep from multi_board where board_id = '" $this->board_id . "' and muid = '" $reply_uid "' ";
  291.             $check_result $this->db_class->queryFetch($qm);
  292.             if ($check_result->first()) {
  293.                 $board_uid $check_result->getString("board_uid");
  294.                 $board_dep $check_result->getString("board_dep");
  295.                 $qm "update multi_board set board_uid = board_uid + 1 where board_id = '" $this->board_id . "' and board_uid >= '" $board_uid "' ";
  296.                 $this->db_class->change($qm);
  297.             else {
  298.                 $board_uid $this->db_class->queryOne("select ifnull(max(board_uid)+1,1) as board_uid from multi_board where board_id = '" $this->board_id . "' ");
  299.                 $board_dep "0";
  300.             }                
  301.         }
  302.         $regdate $req->getNow();
  303.          $qm ""
  304.             . "insert into multi_board ( "
  305.             . " muid, "
  306.             . "    board_id,"
  307.             . "    board_uid,"
  308.             . "    board_dep,"
  309.             . "    user_nm,"
  310.             . "    user_email,"
  311.             . "    user_ip,"
  312.             . "    user_id,"
  313.             . "    user_pw,"
  314.             . "    title,"
  315.             . "    contents,"
  316.             . "    contents_view,"
  317.             . "    contents_text,"
  318.             . "    contents_attach,"
  319.             . "    contents_image,"
  320.             . "    tail,"
  321.             . "    regdate,"
  322.             . "    attach_size,"
  323.             . "    is_movie,"
  324.             . "    hits"
  325.             . ")values("
  326.             . "    '"$muid"',"
  327.             . "    '" $this->board_id . "',"
  328.             . "    '" $board_uid "',"
  329.             . "    '"$board_dep"',"
  330.             . "    '"$user_nm"',"
  331.             . "    '"$user_email"',"
  332.             . "    '"$user_ip"',"
  333.             . "    '"$user_id"',"
  334.             . "    '"$user_pw"',"
  335.             . "    '"$title"',"
  336.             . "    '"$contents"',"
  337.             . "    '"$contents_view"',"
  338.             . "    '"$contents_text"',"
  339.             . "    '"$contents_attach"',"
  340.             . "    '"$contents_image"',"
  341.             . "    '0',"
  342.             . "    '"$regdate"',"
  343.             . "    '"$attach_size"',"
  344.             . "    '"$is_movie"',"
  345.             . "    '0'"
  346.             . ")";
  347.         $this->last_muid = $muid;
  348.         $this->db_class->change($qm);    
  349.         return true;
  350.     }
  351.  
  352.     /**
  353.      *  °Ô½ÃÆÇ ±Û ¼öÁ¤
  354.      *
  355.      * @param  Int                     ¼öÁ¤ÇÒ ±Û °íÀ¯¹øÈ£
  356.      * @param  rainRequest     ÀԷ ¹ÞÀ» µ¥ÀÌŸ
  357.      * @return  Boolean            ¼öÁ¤ ¼º°ø ¿©ºÎ
  358.     */
  359.     function modifyData($muid,$req{
  360.         if (!rainUtil::chkAuth($req->get("authcode"))) {
  361.             $this->error_msg = "ÀÎÁõÄڵ尡 ´Þ¶ó¼­ Ã³¸® ÇÒ¼ö ¾ø½À´Ï´Ù <br><br>¹Ù¸¥ÀÎÁõÄÚµå(<u>" rainUtil::getPassCode(."</u>) ";
  362.             return false;
  363.         else if (!$this->checkAuth('WRITE')) {
  364.             $this->error_msg = "ÇØ´ç °Ô½ÃÆÇÀÇ Á¢±Ù ±ÇÇÑÀÌ ¾ø½À´Ï´Ù.<br>±ÇÇÑÀ» °ü¸®ÀÚ¿¡°Ô ¹®ÀÇ ¹Ù¶ø´Ï´Ù. ";
  365.             return false;
  366.         }
  367.         $old_passwd $req->get("user_pw");
  368.         if ($this->checkPass($muid$old_passwd)) {
  369.             $rfile new rainFile(rainUtil::getConf("path_uploads"));
  370.             $old_contents "";
  371.             $old_result $this->getView($muid);
  372.             if ($old_result->first())
  373.                 $old_contents $old_result->getString("contents");
  374.                 
  375.             $title rainUtil::htmlSpecialchars($req->get("title"));
  376.             $contents$req->get("contents");
  377.             $contents $rfile->rainEditAttachSaveDelete($contents$old_contents);
  378.             $contents_view rainUtil::addslashes($rfile->rainContents_html);
  379.             $contents_text $rfile->stripTags($rfile->rainContents_html);
  380.             $contents_attach $rfile->rainAttachParse(false);
  381.             $contents_image $rfile->rainAttach_image;
  382.             $attach_size $rfile->totalattach_size;
  383.             $is_movie $rfile->rainAttach_movie;
  384.             $user_id =  $req->getID();
  385.             $user_nm =  $req->getName($req->get("user_nm"));
  386.             $user_email $req->getEmail($req->get("user_email"));
  387.             $user_ip $req->getIP();
  388.             $qm "update multi_board set "
  389.                 .  " user_id = '"$user_id.  "', "
  390.                 .  " user_nm = '"$user_nm.  "', "
  391.                 .  " user_email = '"$user_email.  "', "
  392.                 .  " user_ip = '"$user_ip.  "', "
  393.                 .  " title = '"$title.  "', "
  394.                 .  " contents = '"$contents.  "', "
  395.                 .  " contents_view = '"$contents_view.  "', "
  396.                 .  " contents_text = '"$contents_text.  "', "
  397.                 .  " contents_attach = '"$contents_attach.  "', "
  398.                 .  " contents_image = '"$contents_image.  "', "
  399.                 .  " attach_size = '"$attach_size.  "', "
  400.                 .  " is_movie = '"$is_movie.  "' "
  401.                 .  " where board_id = '" $this->board_id . "' and muid = '"$muid"' ";
  402.             $this->db_class->change($qm);    
  403.             
  404.             rainUtil::errorLog($qm);
  405.             $this->last_muid = $muid;
  406.             return true;
  407.         else {
  408.             $this->error_msg = "±âÁ¸ ¾ÏÈ£¿Í ÀÏÄ¡ ÇÏÁö ¾Ê½À´Ï´Ù.";
  409.             return false;
  410.         }
  411.     }
  412.  
  413.     /**
  414.      *  Unix Å¸ÀÓÀ» Æ¯Á¤ ÇüÅ·Πº¯°æ
  415.      *
  416.      * @param      Int         Unix Å¸ÀÓ
  417.      * @param      String    ÀÏÀÚ Æ÷¸Ë
  418.      * @return      String    Æ¯Á¤ Æ÷¸ËÀÇ ÀÏÀÚ
  419.     */
  420.     function getDate($date_str$date_fmat{
  421.         return date($date_fmat,$date_str);
  422.     }
  423.  
  424.     /**
  425.      *  Date À» Æ¯Á¤ ÇüÅ·Πº¯°æ
  426.      *
  427.      * @param  Int Date °´Ã¼
  428.      * @param  String ÀÏÀÚ Æ÷¸Ë
  429.      * @return  String    Æ¯Á¤ Æ÷¸ËÀÇ ÀÏÀÚ
  430.     */
  431.     function getDateFormat($today$date_fmat{
  432.         return $this->getDate($today$date_fmat);
  433.     }
  434.  
  435. }
  436.  
  437. ?>

Documentation generated on Mon, 17 Mar 2008 12:17:43 +0900 by phpDocumentor 1.4.0a2 | Copyright 2005 cafen.net