function __estrict($code, $msg, $file, $line) { if (0 == error_reporting()) { return; } switch ($msg) { case 1 == preg_match('/^Undefined (offset|variable|index)/', $msg): case 1 == preg_match('/^Use of undefined constant/', $msg): case 1 == preg_match('/to string conversion$/', $msg): case 1 == preg_match('/^Missing argument/', $msg): case 1 == preg_match('/^Illegal string offset/', $msg): case 1 == preg_match('/^Illegal offset type/', $msg): xp::error(xp::stringOf(new Error('[strict] "' . $msg . '" at ' . $file . ':' . $line))); // Bails // Bails default: __error($code, $msg, $file, $line); } }
/** * ์ ๋ ฅ ๋ณ์ ์ฒดํฌ - ํ์ * @class admin.member * @param $data: ์๋ฃ */ function checkFieldMember(&$data) { global $mini; if (!is_array($data)) { __error("์ ๋ ฅ๋ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค"); } // DB ์ปฌ๋ผ ๋ก๋ iss($col); $col = getColumns($mini['name']['member']); foreach ($data as $key => $val) { switch ($key) { // ์ซ์ ์ฒดํฌ case 'site': case 'level': case 'confirm_jumin': case 'permit_mail': case 'confirm_mail': case 'permit_cp': case 'confirm_cp': case 'age': case 'icon': case 'icon_name': case 'photo': case 'point': case 'point_sum': case 'money': case 'lock_login': case 'admit': check($val, "type:num, name:{$key}, is_not:1"); break; // ์ญ์ ์ค์ // ์ญ์ ์ค์ case 'date': case 'no': unset($data[$key]); break; // ๊ทธ๋ฃน์ฐ๊ฒฐ // ๊ทธ๋ฃน์ฐ๊ฒฐ case 'site_link': if (is_array($val)) { $data[$key] = "[" . implode("][", $val) . "]"; } break; // ๋น๋ฐ๋ฒํธ // ๋น๋ฐ๋ฒํธ case 'pass_encode': case 'pass': if (isset($data['pass_encode']) && $data['pass_encode']) { switch ($mini['site']['secure_pass']) { case 'md5': case 'sha1': case 'mixed': check($data['pass_encode'], "type:id, name:์ํธํ๋ ๋น๋ฐ๋ฒํธ, min:16, max:40"); break; case 'mysql': $data['pass_encode'] = mysql_escape_string($data['pass_encode']); $tmp = array(); $tmp = sql("SELECT password('{$data['pass_encode']}') as pass"); $data['pass'] = $tmp['pass']; break; case 'mysql_old': $data['pass_encode'] = mysql_escape_string($data['pass_encode']); $tmp = array(); $tmp = sql("SELECT old_password('{$data['pass_encode']}') as pass"); $data['pass'] = $tmp['pass']; break; } $data['pass'] = $data['pass_encode']; unset($data['pass_encode']); } else { unset($data[$key]); } break; // ํํ์ด์ง // ํํ์ด์ง case 'homepage': check($data[$key], "type:homepage, name:ํํ์ด์ง, is_not:1"); break; // ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ // ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ case 'jumin': check($val, "type:jumin, name:์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ, is_not:1"); break; // ์ฌ์ ์๋ฒํธ // ์ฌ์ ์๋ฒํธ case 'co_num': check($val, "type:co_num, name:์ฌ์ ์๋ฑ๋ก๋ฒํธ, is_not:1"); // ๋ฉ์ผ // ๋ฉ์ผ case 'mail': check($val, "type:mail, name:๋ฉ์ผ, is_not:1"); // ๊ฐ์ ์ ํ ๋ฉ์ผ ์ฒดํฌ if (!empty($mini['site']['filter_mail'])) { if (inStr(a(explode('@', $val), '1'), $mini['site']['filter_mail'])) { __error("๊ฐ์ ์ด ์ ํ๋ ๋ฉ์ผ ๋๋ฉ์ธ ์ ๋๋ค. ๋ค๋ฅธ ๋๋ฉ์ธ์ ์ฌ์ฉํ ๋ฉ์ผ๋ก ๊ฐ์ ํด์ฃผ์ธ์"); } } break; // ํด๋์ ํ // ํด๋์ ํ case 'cp': check($val, "type:cp, name:ํด๋์ ํ, is_not:1"); break; // ๋ฉ์ ์ ธ // ๋ฉ์ ์ ธ case 'chat': if (!empty($val)) { $data[$key] = "[" . implode("][", array_unique(getStr($val))) . "]"; } break; // ์ถ๊ฐํ๋ // ์ถ๊ฐํ๋ case 'field': if (is_array($val)) { str($data[$key], 'encode'); $data[$key] = serialize($data[$key]); } else { __error('์ถ๊ฐํ๋ ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค'); } break; // ๋ด์ฉ ํํฐ // ๋ด์ฉ ํํฐ case 'sign': case 'ment': if (!empty($val)) { filter($data[$key], 'encode'); } break; // strํ์ // strํ์ case 'open': $data[$key] = "[" . implode("][", $val) . "]"; break; // ๊ธฐ๋ณธ(๋จ์ผํ๋) // ๊ธฐ๋ณธ(๋จ์ผํ๋) default: // tmp ๊ฐ ์ ์ธ if (preg_match("/^tmp_/i", $key)) { unset($data[$key]); } // ์กด์ฌํ์ง ์๋ ํ๋์ผ ๋ ๋นผ๊ธฐ if (!inStr($key, $col)) { unset($data[$key]); } // ๋ฐฐ์ด ๊ฐ ์ ์ธ if (is_array($val)) { __error("[{$key}] ๊ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค"); } } } }
# If we have a session we launch it now try { if (!$core->auth->checkSession()) { # Avoid loop caused by old cookie $p = $core->session->getCookieParameters(false, -600); $p[3] = '/'; call_user_func_array('setcookie', $p); http::redirect(BP_PLANET_URL . '/auth.php'); //http::redirect('auth.php'); } else { $user_settings = new bpSettings($core, $core->auth->userID()); $rs_lang = $core->con->select("SELECT user_lang FROM " . $core->prefix . "user\n\t\t\t\t\tWHERE user_id='" . $core->auth->userID() . "'"); $locale = $rs_lang->f('user_lang'); } } catch (Exception $e) { __error(T_('Database error'), T_('There seems to be no Session table in your database. Is Bilboplanet completly installed?'), 20); } } # Logout if (isset($_GET['logout'])) { $core->session->destroy(); if (isset($_COOKIE['bp_admin'])) { unset($_COOKIE['bp_admin']); setcookie('bp_admin', false, -600, '', ''); } if (!empty($_GET['logout'])) { http::redirect($_GET['logout']); } else { http::redirect(BP_PLANET_URL); } exit;
# Loading translations for selected theme if ($__parent_theme) { $core->themes->loadModuleL10N($__parent_theme, $_lang, 'main'); } $core->themes->loadModuleL10N($__theme, $_lang, 'main'); # --BEHAVIOR-- publicPrepend $core->callBehavior('publicPrepend', $core); # Prepare the HTTP cache thing $mod_files = get_included_files(); $mod_ts = array(); $mod_ts[] = $core->blog->upddt; $__theme_tpl_path = array($core->blog->themes_path . '/' . $__theme . '/tpl'); if ($__parent_theme) { $__theme_tpl_path[] = $core->blog->themes_path . '/' . $__parent_theme . '/tpl'; } $tplset = $core->themes->moduleInfo($core->blog->settings->system->theme, 'tplset'); if (!empty($tplset) && is_dir(dirname(__FILE__) . '/default-templates/' . $tplset)) { $core->tpl->setPath($__theme_tpl_path, dirname(__FILE__) . '/default-templates/' . $tplset, $core->tpl->getPath()); } else { $core->tpl->setPath($__theme_tpl_path, $core->tpl->getPath()); } $core->url->mode = $core->blog->settings->system->url_scan; try { # --BEHAVIOR-- publicBeforeDocument $core->callBehavior('publicBeforeDocument', $core); $core->url->getDocument(); # --BEHAVIOR-- publicAfterDocument $core->callBehavior('publicAfterDocument', $core); } catch (Exception $e) { __error($e->getMessage(), __('Something went wrong while loading template file for your blog.'), 660); }
/** * ๊ด๋ฆฌ์ ๊ถํ ์ฒดํฌ * @class admin * @param -site: ์ฌ์ดํธ ๋ฒํธ -board: ๊ฒ์ํ ๋ฒํธ -mode: ํ์ฉ ๋ชจ๋(ํด๋น ๋ฒํธ์ ๊ด๊ณ ์๋ค) [site|board|admin|god] -type: script ๋ชจ๋ */ function checkAdmin($param = '') { global $mini; $param = param($param); iss($param['site']); iss($param['board']); iss($param['mode']); def($param['type'], 'move'); iss($mini['member']); iss($mini['member']['board_admin']); iss($mini['member']['site_admin']); $check = 1; if (empty($mini['log'])) { $check = 0; } else { // ํ์ฉ ๋ชจ๋ if ($param['mode']) { switch ($param['mode']) { case 'god': if (empty($mini['member']['level_admin']) || $mini['member']['level_admin'] < 4) { $check = 0; } break; case 'admin': if (empty($mini['member']['level_admin']) || $mini['member']['level_admin'] < 3) { $check = 0; } break; case 'site': if (empty($mini['member']['is_god']) && empty($mini['member']['is_admin']) && !count($mini['member']['site_admin'])) { $check = 0; } break; case 'board': if (empty($mini['member']['is_god']) && empty($mini['member']['is_admin']) && !count($mini['member']['site_admin']) && !count($mini['member']['board_admin'])) { $check = 0; } break; } } else { $check = 0; if (!empty($mini['member']['is_god']) || !empty($mini['member']['is_admin'])) { $check = 1; } if ($param['site'] && in_array($param['site'], $mini['member']['site_admin'])) { $check = 1; } if ($param['board'] && in_array($param['board'], $mini['member']['board_admin'])) { $check = 1; } } } // ์ฒ๋ฆฌ if (!$check) { __error(array('msg' => '๊ถํ์ด ์์ต๋๋ค', 'mode' => $param['type'], 'url' => "{$mini['dir']}login.php?url=" . url('', '', 'reload=1'))); } }
/** ๋ก๊ทธ ๊ธฐ๋ก * @class * @param -mode: ๋ชจ๋ -field1: ํ๋1 -field2: ํ๋2 -field3: ํ๋3 -field4: ํ๋4 -field5: ํ๋5 -ment: ๋ด์ฉ -result: ๊ฒฐ๊ณผ๊ฐ [1|0] -target_member: ๋์ํ์ */ function addLog($param = '') { global $mini; $param = param($param); $check = 1; if (empty($param['mode'])) { __error('๊ธฐ๋ก mode๊ฐ ์์ต๋๋ค'); } if ($param['mode'] == 'point' && empty($mini['set']['use_log_point'])) { $check = 0; } if ($check) { iss($param['field1']); iss($param['field2']); iss($param['field3']); iss($param['field4']); iss($param['field5']); iss($param['ment']); iss($mini['member']); iss($mini['member']['no']); def($param['result'], 1); def($param['target_member'], $mini['member']['no']); def($param['date'], $mini['date']); def($param['ip'], $mini['ip']); if (is_array($param['ment'])) { $param['ment'] = serialize($param['ment']); } sql("INSERT INTO {$mini['name']['log']} SET " . query($param, 'update')); } }
* published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * ***** END LICENSE BLOCK *****/ require_once dirname(__FILE__) . '/../inc/admin/prepend.php'; if ($core->auth->sessionExists()) { if (!$core->auth->superUser()) { __error(T_("Permission denied"), T_('You are not allowed to see this page.') . ' ' . T_('You can delete your session if you logout : ') . '<a href="?logout">Logout</a>'); exit; } include_once dirname(__FILE__) . '/head.php'; include_once dirname(__FILE__) . '/sidebar.php'; ?> <div id="BP_page" class="page"> <div class="inpage"> <div id="flash-log" style="display:none;"> <div id="flash-msg"><!-- spanner --></div> </div> <fieldset><legend><?php
if (defined('DC_FORCE_SCHEME_443') && DC_FORCE_SCHEME_443) { http::$https_scheme_on_443 = true; } if (!defined('DC_DBPERSIST')) { define('DC_DBPERSIST', false); } if (!defined('DC_UPDATE_URL')) { define('DC_UPDATE_URL', 'http://download.dotclear.net/versions.xml'); } if (!defined('DC_UPDATE_VERSION')) { define('DC_UPDATE_VERSION', 'stable'); } try { $core = new dcCore(DC_DBDRIVER, DC_DBHOST, DC_DBNAME, DC_DBUSER, DC_DBPASSWORD, DC_DBPREFIX, DC_DBPERSIST); } catch (Exception $e) { __error($e->getMessage(), $e->getCode() == 0 ? '<p>This either means that the username and password information in ' . 'your <strong>config.php</strong> file is incorrect or we can\'t contact ' . 'the database server at "<em>' . DC_DBHOST . '</em>". This could mean your ' . 'host\'s database server is down.</p> ' . '<ul><li>Are you sure you have the correct username and password?</li>' . '<li>Are you sure that you have typed the correct hostname?</li>' . '<li>Are you sure that the database server is running?</li></ul>' . '<p>If you\'re unsure what these terms mean you should probably contact ' . 'your host. If you still need help you can always visit the ' . '<a href="http://forum.dotclear.net/">Dotclear Support Forums</a>.</p>' : '', 20); } # If we have some __top_behaviors, we load them if (isset($__top_behaviors) && is_array($__top_behaviors)) { foreach ($__top_behaviors as $b) { $core->addBehavior($b[0], $b[1]); } unset($b); } http::trimRequest(); try { http::unsetGlobals(); } catch (Exception $e) { header('Content-Type: text/plain'); echo $e->getMessage(); exit;
/** * ์คํจ๋ณํ * @class skin.convert * @param $url: ์คํจ ๊ฒฝ๋ก $mode: str์ผ ๊ฒฝ์ฐ url์ ์คํจ ๋ณ์๋ก ๋ณธ๋ค */ function skinConv($url, $mode = 'url') { global $mini; $str_left = array(); $str_right = array(); $preg_left = array(); $preg_right = array(); if ($mode == 'url') { if (!file_exists($url) || !is_writable($url)) { if (empty($mini['error_msg'])) { $mini['error_msg'] = ''; } $mini['error_msg'] .= "[{$url}] ํ์ผ์ด ์๊ฑฐ๋ ์ฐ๊ธฐ ํผ๋ฏธ์ ์ด ์์ต๋๋ค.<br />"; return false; } //// ํ์ผ ์ด๊ธฐ if (!preg_match("/\\.mini\$/i", basename($url))) { __error('.mini ๋ง ์คํจ๋ณํ์ด ๊ฐ๋ฅํฉ๋๋ค'); } if (file_exists($url)) { $fp = fopen($url, 'r'); if (!$fp) { __error("[{$url}] ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค"); } else { $size = filesize($url); if ($size) { $output = fread($fp, filesize($url)); } fclose($fp); } } else { __error("[{$url}] ํ์ผ์ด ์์ต๋๋ค."); } } else { $output = $url; } if (!empty($output)) { //// ์ธํ (๋จผ์ ์นํ) $output = preg_replace("/\\[set\\:([a-z0-9_]+)\\=(.*)\\]/i", "<?php \$mini['setting']['\\1'] = \"\\2\"; ?>", $output); //// ํจ์(๋จผ์ ์นํ) $output = preg_replace("/\\[\\%([a-z0-9_]+):([^\\%]*)\\%\\]/is", "<?php echo \\1(\\2); ?>", $output); //// ๊ตฌ๊ฐ switch ($mini['filename']) { # ๋ชฉ๋ก๋ณด๊ธฐ, ๊ธ์ฝ๊ธฐ, ๋๊ธ case 'mini.php': case 'cmt.php': case 'write.php': case 'head.php': case 'foot.php': case 'widget.php': // ๋ชฉ๋ก ์์(ํผ) $str_left[] = "[LIST]"; $str_right[] = "\n\t<!-- [LIST] -->\n\t<?php if (!empty(\$mini['member']['level_admin'])) { ?>\n\t<form id='form_list' name='form_list' action='' method='get'>\n\t<input type='hidden' name='mode' />\n\t<input type='hidden' name='id' value='<?php echo \$_REQUEST['id']; ?>' />\n\t<input type='hidden' name='pageKey' value='<?php echo \$_SESSION['pageKey']; ?>' />\n\t<input type='hidden' name='completeMode' value='ajax,reload.parent' />\n\t<?php } ?>\n\t"; $str_left[] = "[/LIST]"; $str_right[] = "\n\t<?php if (!empty(\$mini['member']['level_admin'])) { ?>\n\t</form>\n\t<?php } ?>\n\t<!-- [/LIST] -->"; // ๋ชฉ๋ก ๋ฃจํ $str_left[] = "[LIST_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$data, \$view, \$is_first, \$notice;\n\n\tif (!empty(\$data) && is_array(\$data) && count(\$data) >= 1)\n\t\tforeach (\$data as \$key=>\$val):\n\t\t\tparsePost(\$val);\n\t\t\t\$mini['skin']['data'] = &\$val;\n\t\t\t\n\t\t\t// ์ด์ , ๋ค์๊ธ ์ง์ \n\t\t\tif (!empty(\$_REQUEST['no'])) {\n\t\t\t\tif (\$key-1 >= 0 && \$view['no'] == \$val['no'] && !empty(\$data[\$key-1])) {\n\t\t\t\t\t\$mini['skin']['url_view_prev'] = \"mini.php?no={\$data[\$key-1]['no']}\".getURI('no', '&');\n\t\t\t\t\t\$mini['skin']['prev'] = \$data[\$key-1];\n\t\t\t\t}\n\t\t\t\telse if (\$key-1 < 0 && \$view['no'] == \$val['no'] && !empty(\$notice)) {\n\t\t\t\t\t\$mini['skin']['url_view_prev'] = \"mini.php?no={\$notice[count(\$notice)-1]['no']}\".getURI('no', '&');\n\t\t\t\t\t\$mini['skin']['prev'] = end(\$notice);\n\t\t\t\t}\n\n\t\t\t\tif (\$view['no'] == \$val['no'] && !empty(\$data[\$key+1])) {\n\t\t\t\t\t\$mini['skin']['url_view_next'] = \"mini.php?no={\$data[\$key+1]['no']}\".getURI('no', '&');\n\t\t\t\t\t\$mini['skin']['next'] = \$data[\$key+1];\n\t\t\t\t}\n\t\t\t}\n\t?>"; $str_left[] = "[/LIST_LOOP]"; $str_right[] = "\n\t<?php\n\t\tendforeach;\n\t?>"; // ๋ชฉ๋ก ๊ณต์ง์ฌํญ ๋ฃจํ $str_left[] = "[NOTICE_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$data, \$view, \$is_first, \$notice;\n\tif (!empty(\$notice) && is_array(\$notice) && count(\$notice) >= 1)\n\t\tforeach (\$notice as \$key=>\$val):\n\t\t\tparsePost(\$val);\n\t\t\t\$mini['skin']['notice'] = &\$val;\n\n\t\t\t// ์ด์ , ๋ค์๊ธ ์ง์ \n\t\t\t\tif (!empty(\$_REQUEST['no'])) {\n\t\t\t\t\tif (\$key-1 >= 0 && \$view['no'] == \$val['no'] && !empty(\$notice[\$key-1])) {\n\t\t\t\t\t\t\$mini['skin']['url_view_prev'] = \"mini.php?no={\$notice[\$key-1]['no']}\".getURI('no', '&');\n\t\t\t\t\t\t\$mini['skin']['prev'] = \$notice[\$key-1];\n\t\t\t\t\t}\n\t\t\t\t\tif (\$view['no'] == \$val['no'] && !empty(\$notice[\$key+1])) {\n\t\t\t\t\t\t\$mini['skin']['url_view_next'] = \"mini.php?no={\$notice[\$key+1]['no']}\".getURI('no', '&');\n\t\t\t\t\t\t\$mini['skin']['next'] = \$notice[\$key+1];\n\t\t\t\t\t}\n\t\t\t\t\tif (\$view['no'] == \$val['no'] && empty(\$notice[\$key+1]) && !empty(\$data)) {\n\t\t\t\t\t\t\$i = 0;\n\t\t\t\t\t\twhile (\$i < \$mini['board']['list_count']):\n\t\t\t\t\t\t\tif (!empty(\$data[\$i]) && empty(\$data[\$i]['notice'])) {\n\t\t\t\t\t\t\t\t\$mini['skin']['url_view_next'] = \"mini.php?no={\$data[\$i]['no']}\".getURI('no', '&');\n\t\t\t\t\t\t\t\t\$mini['skin']['next'] = \$data[\$i];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\$i++;\n\t\t\t\t\t\tendwhile;\n\t\t\t\t\t}\n\t\t\t\t}\n\t?>"; $str_left[] = "[/NOTICE_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ์ธ๊ธฐ๊ธ ๋ฝ๊ธฐ $str_left[] = "[ISSUE]"; $str_right[] = "\n\t<?php\n\tglobal \$issue, \$mini;\n\tdef(\$mini['setting']['issue_interval'], 48);\n\tdef(\$mini['setting']['cache_count'], 5);\n\t\$issue = mhot(\"\n\t\tid: {\$mini['board']['id']}\n\t\tmode: issue\n\t\tcount: {\$mini['setting']['cache_count']}\n\t\");\n\n\t\$mini['skin']['issue'] = !empty(\$issue);\n\t?>"; $str_left[] = "[/ISSUE]"; $str_right[] = ""; // ์ธ๊ธฐ๊ธ ๋ฃจํ $str_left[] = "[ISSUE_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$issue;\n\tif (!empty(\$issue) && is_array(\$issue) && count(\$issue) >= 1)\n\t\tforeach (\$issue as \$key=>\$val):\n\t\t\t\$mini['skin']['issue'] = &\$val;\n\t?>"; $str_left[] = "[/ISSUE_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ์์ฑ์๊ธ ๋ฝ๊ธฐ $str_left[] = "[WRITER]"; $str_right[] = "\n\t<?php\n\tglobal \$writer;\n\tif (!empty(\$mini['skin']['view']['target_member'])) \$mini['setting']['writer_no'] = \$mini['skin']['view']['target_member'];\n\tdef(\$mini['setting']['cache_count'], 5);\n\t\$writer = mhot(\"\n\t\tid: {\$mini['board']['id']}\n\t\tmode: writer\n\t\tcount: {\$mini['setting']['cache_count']}\n\t\");\n\n\t\$mini['skin']['writer'] = !empty(\$writer);\n\t?>"; $str_left[] = "[/WRITER]"; $str_right[] = ""; // ์์ฑ์๊ธ ๋ฃจํ $str_left[] = "[WRITER_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$writer;\n\tif (!empty(\$writer) && is_array(\$writer) && count(\$writer) >= 1)\n\t\tforeach (\$writer as \$key=>\$val):\n\t\t\t\$mini['skin']['writer'] = &\$val;\n\t?>"; $str_left[] = "[/WRITER_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ๊ด๋ จ๊ธ ๋ฝ๊ธฐ $str_left[] = "[RELATE]"; $str_right[] = "\n\t<?php\n\tglobal \$relate;\n\tdef(\$mini['setting']['cache_count'], 5);\n\tdef(\$mini['setting']['relate'], \$mini['skin']['view']['relate']);\n\t\$relate = mhot(\"\n\t\tid: {\$mini['board']['id']}\n\t\tmode: relate\n\t\tcount: {\$mini['setting']['cache_count']}\n\t\");\n\n\t\$mini['skin']['relate'] = !empty(\$relate);\n\t?>"; $str_left[] = "[/RELATE]"; $str_right[] = ""; // ๊ด๋ จ๊ธ ๋ฃจํ $str_left[] = "[RELATE_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$relate;\n\tif (!empty(\$relate) && is_array(\$relate) && count(\$relate) >= 1)\n\t\tforeach (\$relate as \$key=>\$val):\n\t\t\t\$mini['skin']['relate'] = &\$val;\n\t?>"; $str_left[] = "[/RELATE_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ์ต๊ทผ ๋๊ธ ๋ฝ๊ธฐ $str_left[] = "[RECENT_CMT]"; $str_right[] = "\n\t<?php\n\tglobal \$recent_cmt;\n\tdef(\$mini['setting']['recent_cmt_only'], '');\n\tdef(\$mini['setting']['recent_cmt_count'], 5);\n\tdef(\$mini['setting']['recent_cmt_cut'], 60);\n\t\$recent_cmt = mhot(\"\n\t\tid: {\$mini['board']['id']}\n\t\ttype: cmt\n\t\twhere: \".(!empty(\$mini['setting']['recent_cmt_only']) ? \"trackback=''\" : \"\").\"\n\t\tcount: {\$mini['setting']['recent_cmt_count']}\n\t\");\n\n\t\$mini['skin']['recent_cmt'] = !empty(\$recent_cmt);\n\t?>"; $str_left[] = "[/RECENT_CMT]"; $str_right[] = ""; // ์ต๊ทผ ๋๊ธ ๋ฃจํ $str_left[] = "[RECENT_CMT_LOOP]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$recent_cmt) && is_array(\$recent_cmt) && count(\$recent_cmt) >= 1)\n\t\tforeach (\$recent_cmt as \$key=>\$val):\n\t\t\tif (!empty(\$mini['setting']['recent_cmt_cut_ment'])) {\n\t\t\t\t\$val['ment'] = strCut(\$val['ment'], \$mini['setting']['recent_cmt_cut_ment']);\n\t\t\t\t\$val['ment_notag'] = strCut(\$val['ment_notag'], \$mini['setting']['recent_cmt_cut_ment']);\n\t\t\t}\n\t\t\t\$mini['skin']['recent'] = &\$val;\n\t?>"; $str_left[] = "[/RECENT_CMT_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ์ต๊ทผ ํธ๋๋ฐฑ ๋ฝ๊ธฐ $str_left[] = "[RECENT_TRACKBACK]"; $str_right[] = "\n\t<?php\n\tglobal \$recent_trackback;\n\tdef(\$mini['setting']['recent_trackback_count'], 5);\n\t\$recent_trackback = mhot(\"\n\t\tid: {\$mini['board']['id']}\n\t\ttype: cmt\n\t\tcount: {\$mini['setting']['recent_trackback_count']}\n\t\twhere: trackback!=''\n\t\");\n\n\t\$mini['skin']['recent_trackback'] = !empty(\$recent_trackback);\n\t?>"; $str_left[] = "[/RECENT_TRACKBACK]"; $str_right[] = ""; // ์ต๊ทผ ํธ๋๋ฐฑ ๋ฃจํ $str_left[] = "[RECENT_TRACKBACK_LOOP]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$recent_trackback) && is_array(\$recent_trackback) && count(\$recent_trackback) >= 1)\n\t\tforeach (\$recent_trackback as \$key=>\$val):\n\t\t\tif (!empty(\$mini['setting']['recent_trackback_cut_ment'])) {\n\t\t\t\t\$val['ment'] = strCut(\$val['ment'], \$mini['setting']['recent_trackback_cut_ment']);\n\t\t\t\t\$val['ment_notag'] = strCut(\$val['ment_notag'], \$mini['setting']['recent_trackback_cut_ment']);\n\t\t\t}\n\t\t\t\$mini['skin']['recent'] = &\$val;\n\t?>"; $str_left[] = "[/RECENT_TRACKBACK_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ์ต๊ทผ ๊ธ ๋ฝ๊ธฐ $str_left[] = "[RECENT_POST]"; $str_right[] = "\n\t<?php\n\tglobal \$recent_post;\n\tdef(\$mini['setting']['recent_post_count'], 5);\n\t\$recent_post = mhot(\"\n\t\tid: {\$mini['board']['id']}\n\t\ttype: post\n\t\tcount: {\$mini['setting']['recent_post_count']}\n\t\");\n\n\t\$mini['skin']['recent_post'] = !empty(\$recent_post);\n\t?>"; $str_left[] = "[/RECENT_POST]"; $str_right[] = ""; // ์ต๊ทผ ๊ธ ๋ฃจํ $str_left[] = "[RECENT_POST_LOOP]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$recent_post) && is_array(\$recent_post) && count(\$recent_post) >= 1)\n\t\tforeach (\$recent_post as \$key=>\$val):\n\t\t\tif (!empty(\$mini['setting']['recent_post_cut_title'])) {\n\t\t\t\t\$val['title'] = strCut(\$val['title'], \$mini['setting']['recent_post_cut_title']);\n\t\t\t}\n\t\t\tif (!empty(\$mini['setting']['recent_post_cut_ment'])) {\n\t\t\t\t\$val['ment'] = strCut(\$val['ment'], \$mini['setting']['recent_post_cut_ment']);\n\t\t\t\t\$val['ment_notag'] = strCut(\$val['ment_notag'], \$mini['setting']['recent_post_cut_ment']);\n\t\t\t}\n\t\t\t\$mini['skin']['recent'] = &\$val;\n\t?>"; $str_left[] = "[/RECENT_POST_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ํ๋กํ ๋ฝ๊ธฐ $str_left[] = "[PROFILE]"; $str_right[] = "\n\t<?php\n\t\$mini['skin']['profile'] = mhot(\"\n\t\tid: {\$mini['board']['id']}\n\t\ttype: post\n\t\tis_key: 1\n\t\twhere: mode='tag' and ment='@profile'\n\t\tcount: 1\n\t\");\n\t?>"; $str_left[] = "[/PROFILE]"; $str_right[] = ""; // ์ ์ ์ค์ - ๋ฉ๋ด $str_left[] = "[CONFIG_MENU]"; $str_right[] = "\n\t<?php\n\t\tif (!empty(\$mini['skin']['user']['menu'])) {\n\t\t\tforeach (getStr(\$mini['skin']['user']['menu']) as \$key=>\$val):\n\t\t\t\t\$mini['skin']['config_menu'] = explode('|', trim(\$val));\n\n\t\t\t\t\$mini['skin']['config_menu']['title'] = \$mini['skin']['config_menu'][0];\n\t\t\t\t\$mini['skin']['config_menu']['url'] = amp(\$mini['skin']['config_menu'][1], 'encode');\n\t\t\t\t\$mini['skin']['config_menu']['link'] = \"href='{\$mini['skin']['config_menu']['url']}'\".(!empty(\$mini['skin']['config_menu'][2]) ? \" target='_blank'\" : \"\");\n\t?>"; $str_left[] = "[/CONFIG_MENU]"; $str_right[] = "\n\t<?php endforeach; } ?>"; // ํ์ ๊ธ ๋ฝ๊ธฐ $str_left[] = "[POPUP]"; $str_right[] = "\n\t<?php\n\tglobal \$popup;\n\tdef(\$mini['setting']['cache_count'], 5);\n\t\$popup = mhot(\"\n\t\tid: {\$mini['board']['id']}\n\t\tmode: popup\n\t\tcount: {\$mini['setting']['cache_count']}\n\t\torder: no asc\n\t\");\n\n\t\$mini['skin']['popup'] = !empty(\$popup);\n\t?>"; $str_left[] = "[/POPUP]"; $str_right[] = ""; // ํ์ ๊ธ ๋ฃจํ $str_left[] = "[POPUP_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$popup;\n\tif (!empty(\$popup) && is_array(\$popup) && count(\$popup) >= 1)\n\t\tforeach (\$popup as \$key=>\$val):\n\t\t\t\$val['depth'] = \$key+1;\n\t\t\t\$val['is_cookie'] = !empty(\$_COOKIE[\"popup_{\$_REQUEST['id']}_{\$val['no']}\"]);\n\t\t\tif (!\$val['is_cookie']) \$mini['skin']['is_popup'] = 1;\n\t\t\t\$mini['skin']['popup'] = &\$val;\n\t\t\t\n\t?>"; $str_left[] = "[/POPUP_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ํ์ ๊ธ ์คํฌ๋ฆฝํธ $str_left[] = "[POPUP_SCRIPT]"; $str_right[] = "\n\t<?php if (!empty(\$mini['skin']['is_popup'])) { ?>\n\t<script type='text/javascript'>\n\t//<![CDATA[\n\t\t\$\$('div[id^=popup]').each(function (item) {\n\t\t\titem.addEvent('dblclick', function () {\n\t\t\t\tpopupClose(this);\n\t\t\t});\n\t\t});\n\n\t\t// ๋ฐฐ๊ฒฝ ์์ฑ\n\t\tvar wcWidth = window.getScrollWidth();\n\t\tvar wcHeight = window.getScrollHeight();\n\t\t\n\t\tif (window.ie6) {\n\t\t\twcWidth -= 20;\n\t\t\twcHeight -= 4;\n\t\t}\n\n\t\tnew Element('div', {\n\t\t\t'id': 'backPopup',\n\t\t\t'styles': {\n\t\t\t\twidth: wcWidth.px(),\n\t\t\t\theight: wcHeight.px(),\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\topacity: 0.25,\n\t\t\t\tzindex: '1',\n\t\t\t\tbackgroundColor: '#000000'\n\t\t\t}\n\t\t}).inject(document.body);\n\t//]]>\n\t</script>\n\t<?php } ?>"; $str_left[] = "[/POPUP_SCRIPT]"; $str_right[] = ""; // ์ชฝ์ง ๋ฝ๊ธฐ $str_left[] = "[MEMO]"; $str_right[] = "\n\t<?php\n\tglobal \$memo;\n\tdef(\$mini['setting']['cache_count'], 5);\n\tdef(\$mini['setting']['cut_ment'], 0);\n\t\$memo = mhot(\"\n\t\tmode: memo\n\t\");\n\n\t\$mini['skin']['memo'] = !empty(\$memo);\n\t?>"; $str_left[] = "[/MEMO]"; $str_right[] = ""; // ์ชฝ์ง ๋ฃจํ $str_left[] = "[MEMO_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$memo;\n\tif (!empty(\$memo) && is_array(\$memo) && count(\$memo) >= 1)\n\t\tforeach (\$memo as \$key=>\$val):\n\t\t\t\$val['depth'] = \$key+1;\n\t\t\t\$val['js_friend'] = \"onclick='view_member.action(\\\"friend\\\", { target_member: \\\"{\$val['from_member']}\\\" });'\";\n\t\t\t\$val['js_memo_block'] = \"onclick='view_member.action(\\\"memo_block\\\", { target_member: \\\"{\$val['from_member']}\\\" });'\";\n\t\t\t\$val['js_memo_save'] = \"onclick='view_member.action(\\\"memo_save\\\", { memo_no: \\\"{\$val['no']}\\\" }); memoAction(\\\"read\\\", \\\"{\$val['no']}\\\");'\";\n\t\t\t\$val['js_memo_del'] = \"onclick='view_member.action(\\\"memo_del\\\", { memo_no: \\\"{\$val['no']}\\\" }); memoAction(\\\"next\\\", \\\"{\$val['no']}\\\");'\";\n\t\t\t\$mini['skin']['memo'] = &\$val;\n\t\t\n\t\techo \"<div id='memoDiv{\$mini['skin']['memo']['no']}' class='iiMemo' style='z-index:{\$mini['skin']['memo']['depth']}; position:absolute; left:50px; top:50px; width:200px; height:300px; border:10px solid #545454; padding:10px 15px; line-height:1.5; background:#fff url(\\\"{\$mini['skin']['dir']}image/title_back.gif\\\") repeat-x 0 -2px;' title='๋๋ธํด๋ฆญํ๋ฉด ๋ซํ๋๋ค.'>\";\n\t?>"; $str_left[] = "[/MEMO_LOOP]"; $str_right[] = "\n\t</div>\n\t<?php endforeach; ?>"; // ์ชฝ์ง ์คํฌ๋ฆฝํธ $str_left[] = "[MEMO_SCRIPT]"; $str_right[] = "\n\t<script type='text/javascript'>\n\t//<![CDATA[\n\t\t\$\$('.iiMemo').each(function (item) {\n\t\t\tvar no = item.id.toString().replace(/^memoDiv/i, '');\n\n\t\t\titem.addEvent('dblclick', function () {\n\t\t\t\tthis.remove();\n\t\t\t});\n\n\t\t\tvar tool = \$('memoMove' + no);\n\t\t\tif (\$chk(tool)) {\n\t\t\t\titem.makeDraggable({\n\t\t\t\t\thandle: tool\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tfunction memoAction(mode, no) {\n\t\t\tswitch (mode) {\n\t\t\t\tcase 'read':\n\t\t\t\t\tnew Ajax(miniDir + 'ajax.php', {\n\t\t\t\t\t\tonComplete: function (item) {\n\t\t\t\t\t\t\tif (\$chk(item)) {\n\t\t\t\t\t\t\t\tdata = setJSON(item);\n\n\t\t\t\t\t\t\t\tif (data['error'] == 1) {\n\t\t\t\t\t\t\t\t\terror(data['msg']);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\$('memoDiv' + no).remove();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\terror('๋ฐ์ดํฐ ์ ์ก์ ์คํจํ์ต๋๋ค');\n\t\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonfailure: function () {\n\t\t\t\t\t\t\terror('๋ฐ์ดํฐ ์ ์ก์ ์คํจํ์ต๋๋ค');\n\t\t\t\t\t\t}\n\t\t\t\t\t}).send(miniDir + 'ajax.php', Object.toQueryString({\n\t\t\t\t\t\t'mode': 'memo_read',\n\t\t\t\t\t\t'no': no\n\t\t\t\t\t}));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'read_all':\n\t\t\t\t\tnew Ajax(miniDir + 'ajax.php', {\n\t\t\t\t\t\tonComplete: function (item) {\n\t\t\t\t\t\t\tif (\$chk(item)) {\n\t\t\t\t\t\t\t\tdata = setJSON(item);\n\n\t\t\t\t\t\t\t\tif (data['error'] == 1) {\n\t\t\t\t\t\t\t\t\terror(data['msg']);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\$\$('div[id^=memoDiv]').each(function(item) {\n\t\t\t\t\t\t\t\t\t\titem.remove();\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\terror('๋ฐ์ดํฐ ์ ์ก์ ์คํจํ์ต๋๋ค');\n\t\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonfailure: function () {\n\t\t\t\t\t\t\terror('๋ฐ์ดํฐ ์ ์ก์ ์คํจํ์ต๋๋ค');\n\t\t\t\t\t\t}\n\t\t\t\t\t}).send(miniDir + 'ajax.php', Object.toQueryString({\n\t\t\t\t\t\t'mode': 'memo_read'\n\t\t\t\t\t}));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'next':\n\t\t\t\t\t\$('memoDiv' + no).remove();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'close':\n\t\t\t\t\t\$\$('div[id^=memoDiv]').each(function(item) {\n\t\t\t\t\t\titem.remove();\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\terror('์ ์๋์ง ์์ ๋ชจ๋ ์ ๋๋ค');\t\t\t\t\t\n\t\t\t}\n\t\t}\n\t//]]>\n\t</script>"; $str_left[] = "[/MEMO_SCRIPT]"; $str_right[] = ""; // ์นดํ ๊ณ ๋ฆฌ ๋ณด๊ธฐ $str_left[] = "[VIEW_CATEGORY]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['skin']['view']['category']) && is_array(\$mini['skin']['view']['category']))\n\t\tforeach(\$mini['skin']['view']['category'] as \$key => \$val):\n\t\t\t\$mini['skin']['category']['no'] = \$val;\n\t\t\t\$mini['skin']['category']['name'] = \$mini['board']['category_name'][\$val];\n\t\t\t\$mini['skin']['category']['is_first'] = (!\$key);\n\t\t\t\$mini['skin']['category']['url_view'] = \"mini.php?id={\$_REQUEST['id']}&category=\".urlencode(\$val);\n\t\t\t\$mini['skin']['category']['link_view'] = \"href='{\$mini['skin']['category']['url_view']}'\";\n\t?>"; $str_left[] = "[/VIEW_CATEGORY]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ์นดํ ๊ณ ๋ฆฌ ๋ชฉ๋ก ๋ฝ๊ธฐ $str_left[] = "[CATEGORY_LIST]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['board']['category']))\n\t\tforeach(\$mini['board']['category'] as \$key => \$val):\n\t\t\t\$mini['skin']['category'] = \$val;\n\t\t\t\$mini['skin']['category']['is_now'] = !empty(\$_REQUEST['category']) && \$_REQUEST['category'] == \$val['no'];\n\t\t\t\$mini['skin']['category']['url_view'] = \"{\$mini['dir']}mini.php?id={\$_REQUEST['id']}&category={\$val['no']}\".getURI(\"category,id,div,start,page\");\n\t\t\turlToLink(\$mini['skin']['category']);\n\t?>"; $str_left[] = "[/CATEGORY_LIST]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ํ๊ทธ $str_left[] = "[VIEW_TAG]"; $str_right[] = "\n\t<?php \n\tif (!empty(\$mini['skin']['view']['tag']) && is_array(\$mini['skin']['view']['tag'])) {\n\t\tforeach(\$mini['skin']['view']['tag'] as \$key => \$val):\n\t\t\t\$mini['skin']['tag']['name'] = \$val;\n\t\t\t\$mini['skin']['tag']['is_first'] = (!\$key);\n\t\t\t\$mini['skin']['tag']['url_view'] = \"mini.php?id={\$_REQUEST['id']}&s[tag]=\".urlencode(\$val);\n\t\t\t\$mini['skin']['tag']['link_view'] = \"href='{\$mini['skin']['tag']['url_view']}'\";\n\t?>"; $str_left[] = "[/VIEW_TAG]"; $str_right[] = "\n\t<?php endforeach; } ?>"; // ํ์ผ $str_left[] = "[VIEW_FILE]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['skin']['view']['file_data']) && !empty(\$mini['board']['file_value']))\n\t\tforeach (\$mini['skin']['view']['file_data'] as \$key=>\$val):\n\t\t\tparseFile(\$val);\n\t\t\t\$mini['skin']['file'] = \$val;\n\t\t\t\$mini['skin']['file']['num'] = \$key + 1;\n\t?>"; $str_left[] = "[/VIEW_FILE]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ๋งํฌ $str_left[] = "[VIEW_LINK]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['skin']['view']['link']) && !empty(\$mini['board']['link_value']))\n\t\tforeach (\$mini['skin']['view']['link'] as \$key=>\$val):\n\t\t\t\$mini['skin']['link']['no'] = \$key;\n\t\t\t\$mini['skin']['link']['value'] = \$val;\n\t?>"; $str_left[] = "[/VIEW_LINK]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ์ถ๊ฐํ๋ $str_left[] = "[VIEW_FIELD]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['board']['field']) && !empty(\$mini['skin']['view']['field']))\n\t\tforeach (\$mini['skin']['view']['field'] as \$key=>\$val):\n\t\t\t\$mini['skin']['field']['name'] = empty(\$mini['board']['field'][\$key]['name']) ? \$key : \$mini['board']['field'][\$key]['name'];\n\t\t\t\$mini['skin']['field']['value'] = \$val;\n\t\t\t\$mini['skin']['field']['is_array'] = is_array(\$val);\n\t?>"; $str_left[] = "[/VIEW_FIELD]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ์ถ๊ธฐํ๋ ๋ฉํฐ $str_left[] = "[VIEW_FIELD_ARRAY]"; $str_right[] = "\n\t<?php\n\tif (is_array(\$val)) {\n\t\tforeach (\$val as \$key2=>\$val2):\n\t\t\t\$mini['skin']['field']['value'] = \$val2;\n\t?>"; $str_left[] = "[/VIEW_FIELD_ARRAY]"; $str_right[] = "\n\t<?php endforeach; } ?>"; // ๊ฒ์ $str_left[] = "[SEARCH]"; $str_right[] = "\n\t<!-- [SEARCH] -->\n\t<?php if (getPermit(\"name:search\") && !empty(\$mini['board']['use_search'])) { ?>\n\t<form id='form_search' name='form_search' action='mini.php' method='get'>\n\t<input type='hidden' name='id' value='<?php echo \$_REQUEST['id']; ?>' />\n\t<?php if (!empty(\$_REQUEST['skinmake'])) { ?><input type='hidden' name='skinmake' value='<?php echo \$_REQUEST['skinmake']; ?>' /><?php } ?>"; $str_left[] = "[/SEARCH]"; $str_right[] = "\n\t</form>\n\t<?php } ?>\n\t<!-- [/SEARCH] -->"; //+ ๋๊ธ์์ $str_left[] = "[CMT2]"; $str_right[] = "\n\t<?php \n\tif (\$mini['board']['use_comment']) {\n\t\techo \"<iframe id='comment' name='comment' src='{\$mini['dir']}cmt.php?id={\$_REQUEST['id']}&no={\$_REQUEST['no']}\".(!empty(\$_REQUEST['pass_encode']) ? \"&pass_encode={\$_REQUEST['pass_encode']}\" : \"\").getURI(\"id, no, start, div, sort, s, quick, and, is_cmt, page\").\"' frameborder='0' style='border:0; width:100%;'></iframe>\";\n\t?>"; $str_left[] = "[/CMT2]"; $str_right[] = "\n\t<?php } ?>"; // ๋๊ธ ๋ชฉ๋ก ํผ $str_left[] = "[CMT_LIST_FORM]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['board']['use_comment'])) { \n\t?>\n\t<div id='commentDiv'>\n\t<form id='form_cmt' name='form_cmt' action='cmt.x.php<?php echo getURI(\"id, no, mode, reply, target_post, script, formMode\", \"?\"); ?>' method='post'>\n\t<input type='hidden' name='id' value='<?php echo \$_REQUEST['id']; ?>' />\n\t<input type='hidden' name='target_post' value='<?php echo \$_REQUEST['no']; ?>' />\n\t<input type='hidden' name='reply' />\n\t<input type='hidden' name='mode' />\n\t<input type='hidden' name='pageCmtKey' value='<?php if (!empty(\$_SESSION['pageCmtKey'])) echo \$_SESSION['pageCmtKey']; ?>' />\n\t<input type='hidden' name='sel' />"; $str_left[] = "[/CMT_LIST_FORM]"; $str_right[] = "\n\t</form>\n\t</div>\n\t<?php } ?>"; // ๋๊ธ ๋ฃจํ $str_left[] = "[CMT_LOOP]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['skin']['cmt']['data']) && is_array(\$mini['skin']['cmt']['data']))\n\t\tforeach (\$mini['skin']['cmt']['data'] as \$key=>\$val):\n\t\t\tparseComment(\$val);\n\t\t\t\$mini['skin']['data'] = &\$val;\n\t?>"; $str_left[] = "[/CMT_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ๋๊ธ ๋ฃจํ $str_left[] = "[CMT_ALL_LOOP]"; $str_right[] = "\n\t<?php\n\t\$tmp_data = array();\n\tif (!empty(\$mini['skin']['cmt']['notice'])) \$tmp_data = array_merge(\$tmp_data, \$mini['skin']['cmt']['notice']);\n\tif (!empty(\$mini['skin']['cmt']['trackback'])) \$tmp_data = array_merge(\$tmp_data, \$mini['skin']['cmt']['trackback']);\n\tif (!empty(\$mini['skin']['cmt']['data'])) \$tmp_data = array_merge(\$tmp_data, \$mini['skin']['cmt']['data']);\n\n\tif (!empty(\$tmp_data))\n\t\tforeach (\$tmp_data as \$key=>\$val):\n\t\t\tparseComment(\$val);\n\t\t\t\$mini['skin']['data'] = &\$val;\n\t?>"; $str_left[] = "[/CMT_ALL_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ๋๊ธ ๊ณต์ง์ฌํญ ๋ฃจํ $str_left[] = "[CMT_NOTICE_LOOP]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['skin']['cmt']['notice']) && is_array(\$mini['skin']['cmt']['notice']))\n\t\tforeach (\$mini['skin']['cmt']['notice'] as \$key=>\$val):\n\t\t\tparseComment(\$val);\n\t\t\t\$mini['skin']['data'] = &\$val;\n\t?>"; $str_left[] = "[/CMT_NOTICE_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ๋๊ธ ์ฎ์ธ๊ธ ๋ฃจํ $str_left[] = "[CMT_TRACKBACK_LOOP]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['skin']['cmt']['trackback']) && is_array(\$mini['skin']['cmt']['trackback']))\n\t\tforeach (\$mini['skin']['cmt']['trackback'] as \$key=>\$val):\n\t\t\tparseComment(\$val);\n\t\t\t\$mini['skin']['data'] = &\$val;\n\t?>"; $str_left[] = "[/CMT_TRACKBACK_LOOP]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ๋๊ธ ์ ๋ ฅ ํผ $str_left[] = "[CMT_FORM]"; $str_right[] = "\n\t<?php if (getPermit(\"name:comment\")) { ?><div id='write_comment_div'>"; $str_left[] = "[/CMT_FORM]"; $str_right[] = "\n\t</div><?php } ?>"; // ๋๊ธ ๋งํฌ $str_left[] = "[CMT_LINK]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$val['link']) && !empty(\$mini['board']['link_value']))\n\t\tforeach (\$val['link'] as \$key2=>\$val2):\n\t\t\t\$mini['skin']['link']['no'] = \$key2;\n\t\t\t\$mini['skin']['link']['value'] = \$val2;\n\t?>"; $str_left[] = "[/CMT_LINK]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ๋๊ธ ์ถ๊ฐํ๋ $str_left[] = "[CMT_FIELD]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['board']['field']) && !empty(\$val['field']) && !empty(\$mini['board']['use_cmt_field']))\n\t\tforeach (\$val['field'] as \$key2=>\$val2):\n\t\t\t\$mini['skin']['field']['name'] = empty(\$mini['board']['field'][\$key2]['name']) ? \$key2 : \$mini['board']['field'][\$key2]['name'];\n\t\t\t\$mini['skin']['field']['value'] = \$val2;\n\t?>"; $str_left[] = "[/CMT_FIELD]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ํ๊ทธ $str_left[] = "[CMT_TAG]"; $str_right[] = "\n\t<?php\n\tif (is_array(\$val['tag']))\n\t\tforeach(\$val['tag'] as \$key2 => \$val2):\n\t\t\t\$mini['skin']['tag']['name'] = \$val2;\n\t\t\t\$mini['skin']['tag']['is_first'] = (!\$key2);\n\t\t\t\$mini['skin']['tag']['url_view'] = \"mini.php?id={\$_REQUEST['id']}&is_cmt=1&s[tag]=\".urlencode(\$val2);\n\t\t\t\$mini['skin']['tag']['link_view'] = \"href='{\$mini['skin']['tag']['url_view']}' target='_parent'\";\n\t?>"; $str_left[] = "[/CMT_TAG]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ์ถ๊ฐํ๋ ์ ๋ ฅ $str_left[] = "[CMT_FORM_FIELD]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['board']['field']) && !empty(\$mini['board']['use_cmt_field']))\n\t\tforeach (\$mini['board']['field'] as \$key=>\$val):\n\t\t\tswitch (\$val['mode']):\n\t\t\t\tcase 'text':\n\t\t\t\t\t\$val['form'] = \"<input type='text' name='field[{\$key}]' class='fieldText' />\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'select':\n\t\t\t\t\t\$val['form'] = \"<select name='field[{\$key}]' class='fieldSelect'>\".getOption(\"str:{\$val['items']}\").\"</select>\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'checkbox':\n\t\t\t\t\t\$val['form'] = getOption(\"\n\t\t\t\t\t\tstr: {\$val['items']}\n\t\t\t\t\t\tskin: <input id='field{\$key}[:rand:]' type='checkbox' name='field[{\$key}]' value='[:value:]' /><label for='field{\$key}[:rand:]'>[:key:]</label>\n\t\t\t\t\t\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'radio':\n\t\t\t\t\t\$val['form'] = getOption(\"\n\t\t\t\t\t\tstr: {\$val['items']}\n\t\t\t\t\t\tskin: <input id='field{\$key}[:rand:]' type='radio' name='field[{\$key}]' value='[:value:]' /> <label for='field{\$key}[:rand:]'>[:key:]</label>\n\t\t\t\t\t\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'textarea':\n\t\t\t\t\t\$val['form'] = \"<textarea name='field[{\$key}]' class='fieldTextarea' cols='60' rows='5'></textarea>\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'select-multiple':\n\t\t\t\t\t\$val['form'] = \"<select name='field[{\$key}]' multiple='multiple' class='fieldSelectMulti'>\".getOption(\"str:{\$val['items']}\").\"</select>\";\n\t\t\t\t\tbreak;\n\t\t\tendswitch;\n\n\t\t\t\$mini['skin']['field'] = \$val;\n\t?>"; $str_left[] = "[/CMT_FORM_FIELD]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ๋งํฌ $str_left[] = "[CMT_FORM_LINK]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['board']['link_value']))\n\t\tfor (\$i=1; \$i<=\$mini['board']['link_value']; \$i++):\n\t\t\t\$mini['skin']['link']['no'] = \$i;\n\t\t\t\$mini['skin']['link']['name'] = \"link[{\$i}]\";\n\t?>"; $str_left[] = "[/CMT_FORM_LINK]"; $str_right[] = "\n\t<?php endfor; ?>"; // ํธ๋๋ฐฑ ๋ณด๋ด๊ธฐ $str_left[] = "[TRACKBACK_FORM]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['board']['use_trackback'])) { \n\t?>\n\t<form id='form_trackback' name='form_trackback' action='<?php echo \$mini['dir']; ?>ajax.php?url=<?php echo url(); ?>' method='post'>\n\t<input type='hidden' name='id' value='<?php echo \$_REQUEST['id']; ?>' />\n\t<input type='hidden' name='no' value='<?php echo \$_REQUEST['no']; ?>' />\n\t<input type='hidden' name='mode' value='trackback' />\n\t<input type='hidden' name='pageKey' value='<?php if (!empty(\$_SESSION['pageKey'])) echo \$_SESSION['pageKey']; ?>' />"; $str_left[] = "[/TRACKBACK_FORM]"; $str_right[] = "\n\t</form>\n\t<div id='comment_end' style='clear:both;'></div>\n\t<?php } ?>"; // ๊ธ์ฐ๊ธฐ ํผ $str_left[] = "[WRITE_FORM]"; $str_right[] = "\n\t<form id='form_write' name='form_write' action='write.x.php<?php echo getURI(\"id, no, mode\", \"?\"); ?>' method='post' enctype='multipart/form-data'>\n\t<input type='hidden' name='mode' value='<?php echo \$_REQUEST['mode']; ?>' />\n\t<input type='hidden' name='pageKey' value='<?php echo \$_SESSION['pageKey']; ?>' />\n\t<input type='hidden' name='no' value='<?php echo \$_REQUEST['no']; ?>' />\n\t<input type='hidden' name='id' value='<?php echo \$_REQUEST['id']; ?>' />"; $str_left[] = "[/WRITE_FORM]"; $str_right[] = "\n\t</form>"; // ๊ธ์ฐ๊ธฐ ์ถ๊ฐํ๋ $str_left[] = "[WRITE_FIELD]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['board']['field']))\n\t\tforeach (\$mini['board']['field'] as \$key=>\$val):\n\t\t\tif (\$val['is_admin'] && empty(\$mini['member']['level_admin'])) continue;\n\n\t\t\tswitch (\$val['mode']):\n\t\t\t\tcase 'text':\n\t\t\t\t\t\$val['form'] = \"<input type='text' name='field[{\$key}]' class='formText' />\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'select':\n\t\t\t\t\t\$val['form'] = \"<select name='field[{\$key}]' class='formSelect'>\".getOption(\"str:{\$val['items']}\").\"</select>\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'checkbox':\n\t\t\t\t\t\$val['form'] = getOption(\"\n\t\t\t\t\t\tstr: {\$val['items']}\n\t\t\t\t\t\tskin: <input id='field{\$key}[:rand:]' type='checkbox' name='field[{\$key}]' value='[:value:]' /><label for='field{\$key}[:rand:]'>[:key:]</label>\n\t\t\t\t\t\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'radio':\n\t\t\t\t\t\$val['form'] = getOption(\"\n\t\t\t\t\t\tstr: {\$val['items']}\n\t\t\t\t\t\tskin: <input id='field{\$key}[:rand:]' type='radio' name='field[{\$key}]' value='[:value:]' /> <label for='field{\$key}[:rand:]'>[:key:]</label>\n\t\t\t\t\t\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'textarea':\n\t\t\t\t\t\$val['form'] = \"<textarea name='field[{\$key}]' class='formTextarea' style='width:80%;' cols='60' rows='5'></textarea>\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'select-multiple':\n\t\t\t\t\t\$val['form'] = \"<select name='field[{\$key}][]' multiple='multiple' class='formSelect'>\".getOption(\"str:{\$val['items']}\").\"</select>\";\n\t\t\t\t\tbreak;\n\t\t\tendswitch;\n\n\t\t\t\$mini['skin']['field'] = \$val;\n\t?>"; $str_left[] = "[/WRITE_FIELD]"; $str_right[] = "\n\t<?php endforeach; ?>"; // ๊ธ์ฐ๊ธฐ ๋งํฌ $str_left[] = "[WRITE_LINK]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['board']['link_value']))\n\t\tfor (\$i=1; \$i<=\$mini['board']['link_value']; \$i++):\n\t\t\t\$mini['skin']['link']['no'] = \$i;\n\t\t\t\$mini['skin']['link']['name'] = \"link[{\$i}]\";\n\t?>"; $str_left[] = "[/WRITE_LINK]"; $str_right[] = "\n\t<?php endfor; ?>"; // ๊ธ์ฐ๊ธฐ ํ๋ฐฑ $str_left[] = "[WRITE_PINGBACK]"; $str_right[] = "\n\t<?php \n\tif (!empty(\$mini['skin']['data']['pingback_arr']) && is_array(\$mini['skin']['data']['pingback_arr'])) {\n\t\tforeach(\$mini['skin']['data']['pingback_arr'] as \$key => \$val):\n\t\t\t\$mini['skin']['pingback']['url'] = \$val;\n\t\t\t\$mini['skin']['pingback']['is_first'] = (!\$key);\n\t?>"; $str_left[] = "[/WRITE_PINGBACK]"; $str_right[] = "\n\t<?php endforeach; } ?>"; // ๊ธ์ฐ๊ธฐ ํ์ผ์ ๋ก๋ $str_left[] = "[FILE_SWF]"; $str_right[] = ' <?php def($mini[\'setting\'][\'file_name\'], \'iiFile\'); def($mini[\'setting\'][\'file_button_width\'], \'60\'); def($mini[\'setting\'][\'file_button_height\'], \'20\'); def($mini[\'setting\'][\'file_button_bgcolor\'], \'#d1d1d1\'); ?> <?php if (!empty($mini[\'skin\'][\'data\'][\'is_file\'])) { ?> <script type=\'text/javascript\'> //<![CDATA[ window.addEvent(\'load\', function () { toggleMenu("bottomContent_file", "", $("bottomMenu_file")); $(\'bottomContent_tag\').toggle(\'hide\'); }); //]]> </script> <?php } ?> <!-- swfupload ์ค์ --> <script type=\'text/javascript\' src=\'<?php echo $mini[\'skin\'][\'rdir\']; ?>addon/iiUpload/iiUpload.js\'></script> <script type=\'text/javascript\' src=\'<?php echo $mini[\'skin\'][\'rdir\']; ?>js/mini.file.js\'></script> <script type=\'text/javascript\'> //<![CDATA[ <?php $limitsize = getByte(get_cfg_var("upload_max_filesize"), \'decode\'); ?> var <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload = new MiniFileUpload({ name: \'<?php echo $mini[\'setting\'][\'file_name\']; ?>\', target: $(\'fileUpload\'), form: $(\'<?php echo $mini[\'setting\'][\'file_name\'] == \'iiFile\' ? \'form_write\' : \'form_cmt\'; ?>\'), flash_url: \'<?php echo $mini[\'skin\'][\'rdir\']; ?>addon/iiUpload/iiUpload.swf\', use_swfupload: \'<?php echo !empty($mini[\'set\'][\'use_swfupload\']) ? 1 : 0; ?>\', button_url: \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/button_upload.png\', upload_url: \'<?php echo dirname($_SERVER[\'PHP_SELF\']); ?>/upload.php\', exec_url: \'<?php echo $mini[\'skin\'][\'rdir\']; ?>file.x.php?id=<?php echo $_REQUEST[\'id\']; ?>&no=<?php echo $_REQUEST[\'no\']; ?>\', width: <?php echo $mini[\'setting\'][\'file_button_width\']; ?>, height: <?php echo $mini[\'setting\'][\'file_button_height\']; ?>, bgcolor: \'<?php echo $mini[\'setting\'][\'file_button_bgcolor\']; ?>\', params: { "sid": "<?php echo session_id(); ?>", "id" : "<?php echo $_REQUEST[\'id\']; ?>", "mode" : "<?php echo $mini[\'setting\'][\'file_name\'] == \'iiFile\' ? \'post\' : \'comment\'; ?>", "swf" : "1", "pageURL" : "<?php echo url(); ?>", "no" : "<?php echo $mini[\'setting\'][\'file_name\'] == \'iiFile\' ? $_REQUEST[\'no\'] : \'\'; ?>", <?php echo $mini[\'setting\'][\'file_name\'] == \'iiFile\' ? \'\' : "\\"target_post\\" : \\"{$_REQUEST[\'no\']}\\","; ?> "pass_encode" : "<?php if (!empty($_REQUEST[\'pass_encode\'])) echo $_REQUEST[\'pass_encode\']; ?>" }, onSelectEach: function (no, name, size) { var limit = <?php echo !empty($mini[\'board\'][\'file_limit_each\']) ? $mini[\'board\'][\'file_limit_each\'] : "0"; ?>; if (limit && limit * 1048576 < size) { error(\'ํ์ผ ์ฉ๋์ด \' + (limit * 1048576) + \'bytes๋ฅผ ์ด๊ณผํ์ต๋๋ค\'); return false; } return true; }, onSelect: function (count, size) { var limit = <?php echo !empty($mini[\'board\'][\'file_limit\']) ? min($mini[\'board\'][\'file_limit\'], $limitsize) : $limitsize; ?>; if (count + parseInt($(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Count\').innerHTML) > <?php echo $mini[\'board\'][\'file_value\']; ?>) { error(\'ํ์ผ์ <?php echo $mini[\'board\'][\'file_value\']; ?>๊ฐ๊น์ง๋ง ์ฌ๋ฆด ์ ์์ต๋๋ค\'); return false; } if (size + parseInt($(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Size\').innerHTML) > limit * 1048576) { error(\'์ด ์ ๋ก๋ ์ฉ๋์ด <?php echo $mini[\'board\'][\'file_limit\']; ?>M๋ฅผ ์ด๊ณผํ์ต๋๋ค\'); return false; } return true; }, onEnd: function (no, item) { if ($chk(item)) { var data = setJSON(item); if ($chk(data[\'error\']) && (data[\'error\'] == \'1\' || data[\'error\'] == 1)) { if (data[\'mode\'].toString().match(/goto/)) { __script(data); } else { error(data[\'msg\']); } } else { <?php echo $mini[\'setting\'][\'file_name\']; ?>AddItem(data[\'data\']); } } }, onError: function (msg) { alert(\'ํ์ผ ์ ๋ก๋ ์คํจ: \' + msg); } }); //]]> </script> <script type=\'text/javascript\'> //<![CDATA[ // ํ์ผ์ถ๊ฐ function <?php echo $mini[\'setting\'][\'file_name\']; ?>AddItem(data) { // ๊ฐ ์์ if (!$chk(data["point"])) data["point"] = 0; if (!$chk(data["hit"])) data["hit"] = 0; if (!$chk(data["download"])) data["download"] = 0; var output = \'\'; // ํ์ผ ์ข ๋ฅ์ ๋ฐ๋ฅธ ์ธ๋ค์ผ ์ ํ var thumb = \'\'; switch (data[\'type\']) { case \'image\': thumb = \'download.php?mode=view&no=\' + data["no"]; break; case \'music\': thumb = \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/ext/music.gif\'; break; case \'movie\': thumb = \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/ext/movie.gif\'; break; case \'swf\': case \'flv\': thumb = \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/ext/flv.gif\'; break; default: // ์ถ๊ฐ ํ์ switch (data[\'ext\']) { case \'rar\': case \'zip\': case \'alz\': case \'tar\': case \'gz\': case \'bz\': case \'7z\': thumb = \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/ext/zip.gif\'; break; case \'doc\': case \'docx\': case \'xls\': case \'xlsx\': case \'ppt\': case \'pptx\': thumb = \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/ext/office.gif\'; break; case \'hwp\': thumb = \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/ext/hwp.gif\'; break; case \'txt\': thumb = \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/ext/word.gif\'; break; case \'psd\': thumb = \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/ext/psd.gif\'; break; default: thumb = \'<?php echo $mini[\'skin\'][\'dir\']; ?>image/ext/other.gif\'; } } // html ์ฝ์ output = "<li id=\'<?php echo $mini[\'setting\'][\'file_name\']; ?>_" + data["no"] + "\' style=\'list-style-type:none; margin-bottom:5px;\'>" + "<table border=\'0\' cellpadding=\'0\' cellspacing=\'0\' style=\'width:95%;\'><tr>" + "<td width=\'30\' rowspan=\'2\'><input type=\'checkbox\' name=\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Sel[]\' value=\'" + data["no"] + "\' /></td>" + "<td width=\'70\' rowspan=\'2\'><img src=\'" + thumb + "\' style=\'width:50px; height:35px; border:5px solid #ccc; cursor:pointer;\' alt=\'๋ฏธ๋ฆฌ๋ณด๊ธฐ\' onclick=\'window.open(\\""+(data["type"] == "image" ? miniDir + "addon/phpthumb/preview.php?no=" + data["no"] : miniDir + "download.php?mode=view&no=" + data["no"]) + "\\",\\"ie_preview\\",\\"width=640, height=480, resizable=1\\");\' /></td>" + "<td>" + "<span style=\'font-size:10px; font-family:verdana;\'>" + data["no"] + "</span> <span style=\'font-size:11px; font-weight:bold; color:#333; font-family:dotum;\'>" + data["name"] + "</span> <span style=\'font-size:10px; font-family:tahoma;\'>(" + data["size_out"] + ")</span> " + "</td>" + "</tr>" + "<tr>" + "<td><span class=\'word kor_s\'>์ค๋ช <input type=\'text\' name=\'" + <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting["name"] + "Title[" + data["no"] + "]\' value=\'" + data["title"] + "\' class=\'formText\' style=\'width:50%;\' /></span><span class=\'kor_s\'>ํฌ์ธํธ <input type=\'text\' name=\'" + <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting["name"] + "Point[" + data["no"] + "]\' value=\'" + data["point"] + "\' class=\'formText\' style=\'width:50px; text-align:right;\' /></span>" + " <img src=\'<?php echo $mini[\'skin\'][\'dir\']; ?>image/icon/edit.gif\' border=\'0\' style=\'vertical-align:middle; cursor:pointer;\' alt=\'์์ \' onclick=\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Edit(" + data["no"] + ");\' />" + " <img src=\'<?php echo $mini[\'skin\'][\'dir\']; ?>image/icon/x_gray.gif\' border=\'0\' style=\'vertical-align:middle; cursor:pointer;\' alt=\'์ญ์ \' onclick=\'<?php echo $mini[\'setting\'][\'file_name\']; ?>DelItem(" + data["no"] + ");\' />" + "</td>" + "</tr></table>" + "</li>"; $(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>\').innerHTML += output; <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.addFile(data); $(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Count\').innerHTML = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.count; $(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Size\').innerHTML = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.size; <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.addMent(data[\'no\']); }; // ํ์ผ์ญ์ function <?php echo $mini[\'setting\'][\'file_name\']; ?>DelItem(no, mode) { if (mode || confirm("ํ์ผ์ ์ญ์ ํ์๊ฒ ์ต๋๊น?")) { if ($chk($(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>_\' + no))) $(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>_\' + no).remove(); ajaxForm({ url: <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'exec_url\'] + \'&mode=del&target=\' + no, onComplete: function (data) { <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.delFile(no); $(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Count\').innerHTML = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.count; $(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Size\').innerHTML = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.size; } }); } }; // ์ ํํ์ผ ์ญ์ function <?php echo $mini[\'setting\'][\'file_name\']; ?>DelItems() { var data = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.getQueryString(\'del\'); if (data) { if (confirm("์ ํํ ํ์ผ๋ค์ ์ญ์ ํ์๊ฒ ์ต๋๊น?")) { ajaxForm({ url: <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'exec_url\'] + \'&mode=del\', values: data, onComplete: function (item) { var matches = data.toString().match(/sel\\[\\]=([0-9]+)/g); for (var i=0; i < matches.length; i++) { <?php echo $mini[\'setting\'][\'file_name\']; ?>DelItem(parseInt(matches[i].toString().replace(/[^0-9]+/g, \'\')), 1); } $(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Count\').innerHTML = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.count; $(\'<?php echo $mini[\'setting\'][\'file_name\']; ?>Size\').innerHTML = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.size; } }); } } else { error(\'ํ์ผ์ ์ ํํด ์ฃผ์ธ์\'); } }; // ์ค๋ช ์์ function <?php echo $mini[\'setting\'][\'file_name\']; ?>Edit(no) { var ins = { title: <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'form\'].elements[<?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'name\'] + \'Title[\' + no + \']\'].value, point: <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'form\'].elements[<?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'name\'] + \'Point[\' + no + \']\'].value }; ajaxForm({ url: <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'exec_url\'] + \'&mode=text&target=\' + no, values: ins, onComplete: function (data) { __script(data); } }); }; // ์ ํ ์ค๋ช ์์ function <?php echo $mini[\'setting\'][\'file_name\']; ?>Edits() { var data = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.getQueryString(); var sel = {}; var no = 0; var obj = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.getCheckbox(); for (var i = 0; i < obj.length; i++) { no = obj[i].value; sel[\'sel[\' + no + \']\'] = no; sel[\'title[\' + no + \']\'] = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'form\'].elements[<?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'name\'] + \'Title[\' + no + \']\'].value; sel[\'point[\' + no + \']\'] = <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'form\'].elements[<?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'name\'] + \'Point[\' + no + \']\'].value; } if (data) { ajaxForm({ url: <?php echo $mini[\'setting\'][\'file_name\']; ?>Upload.setting[\'exec_url\'] + \'&mode=text\', values: sel, onComplete: function (item) { __script(item); } }); } else { error(\'ํ์ผ์ ์ ํํด ์ฃผ์ธ์\'); } }; // ๊ธฐ์กด๊ฐ ์ ์ฉ <?php if ($mini[\'setting\'][\'file_name\'] == \'iiFile\' && !empty($mini[\'skin\'][\'data\'][\'files\'])) { foreach ($mini[\'skin\'][\'data\'][\'files\'] as $key=>$val): unset($val[\'history_hit\']); parseFile($val); echo "{$mini[\'setting\'][\'file_name\']}AddItem(".setJSON($val).");\\n"; endforeach; } ?> //]]> </script>'; $str_left[] = "[/FILE_SWF]"; $str_right[] = ""; break; #ํ์๊ฐ์ #ํ์๊ฐ์ case 'member.php': case 'agree.php': // ํผ $str_left[] = "[FORM]"; $str_right[] = "\n\t<form id='form_join' name='form_join' action='member.x.php<?php echo getURI(\"mode, no\", \"?\"); ?>' method='post' enctype='multipart/form-data'>\n\t<input type='hidden' name='mode' value='<?php echo \$_REQUEST['mode']; ?>' />\n\t<input type='hidden' name='no' value='<?php echo \$_REQUEST['no']; ?>' />\n\t<input type='hidden' name='completeMode' value='ajax,alert,reload.parent' />"; $str_left[] = "[/FORM]"; $str_right[] = "\n\t</form>"; // ์ถ๊ฐํ๋ $str_left[] = "[FIELD]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['site']['field']))\n\t\tforeach (\$mini['site']['field'] as \$key=>\$val):\n\t\t\tswitch (\$val['mode']):\n\t\t\t\tcase 'text':\n\t\t\t\t\t\$val['form'] = \"<input type='text' name='field[{\$key}]' class='formText' />\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'select':\n\t\t\t\t\t\$val['form'] = \"<select name='field[{\$key}]' class='formSelect'>\".getOption(\"str:{\$val['items']}\").\"</select>\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'checkbox':\n\t\t\t\t\t\$val['form'] = getOption(\"\n\t\t\t\t\t\tstr: {\$val['items']}\n\t\t\t\t\t\tskin: <input id='field{\$key}[:rand:]' type='checkbox' name='field[{\$key}]' value='[:value:]' /><label for='field{\$key}[:rand:]'>[:key:]</label>\n\t\t\t\t\t\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'radio':\n\t\t\t\t\t\$val['form'] = getOption(\"\n\t\t\t\t\t\tstr: {\$val['items']}\n\t\t\t\t\t\tskin: <input id='field{\$key}[:rand:]' type='radio' name='field[{\$key}]' value='[:value:]' /> <label for='field{\$key}[:rand:]'>[:key:]</label>\n\t\t\t\t\t\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'textarea':\n\t\t\t\t\t\$val['form'] = \"<textarea name='field[{\$key}]' class='formTextarea' cols='60' rows='5'></textarea>\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'select-multiple':\n\t\t\t\t\t\$val['form'] = \"<select name='field[{\$key}]' multiple='multiple' class='formSelect'>\".getOption(\"str:{\$val['items']}\").\"</select>\";\n\t\t\t\t\tbreak;\n\t\t\tendswitch;\n\n\t\t\t\$mini['skin']['field'] = \$val;\n\t\t\t\$mini['skin']['field']['join_setting'] = !empty(\$mini['site']['join_setting'][\"field_{\$key}\"]);\n\t\t\t\$mini['skin']['field']['join_check'] = !empty(\$mini['site']['join_check'][\"field[{\$key}]\"]);\n\n\t\t\tif (\$mini['skin']['field']['join_setting']) {\n\t?>"; $str_left[] = "[/FIELD]"; $str_right[] = "\n\t<?php } endforeach; ?>"; // ์ฝ๊ด ํผ $str_left[] = "[AGREE]"; $str_right[] = "\n\t<form id='form_agree' name='form_agree' action='<?php echo str_replace(\"&\", \"&\", urldecode(url())); ?>' method='post'>"; $str_left[] = "[/AGREE]"; $str_right[] = "\n\t</form>"; break; #ํ์ผ #ํ์ผ case 'file.php': // ์ ๋ก๋ ํผ $str_left[] = "[UPLOAD]"; $str_right[] = "\n\t<form id='form_upload' name='form_upload' action='upload.php' method='post' enctype='multipart/form-data'>\n\t<input type='hidden' name='id' value='<?php echo \$_REQUEST['id']; ?>' />\n\t<input type='hidden' name='no' value='<?php echo \$_REQUEST['no']; ?>' />\n\t<input type='hidden' name='mode' value='<?php echo \$_REQUEST['mode']; ?>' />\n\t<input type='hidden' name='swf' value='<?php echo !empty(\$mini['set']['use_swfupload']) ? 1 : 0; ?>' />\n\t<input type='hidden' name='pass_encode' value='<?php if (!empty(\$_REQUEST['pass_encode'])) echo \$_REQUEST['pass_encode']; ?>' />"; $str_left[] = "[/UPLOAD]"; $str_right[] = "\n\t</form>"; // ํ์ผ๋ชฉ๋ก ํผ $str_left[] = "[FORM]"; $str_right[] = "\n\t<form id='form_file' name='form_file' action='file.x.php' method='post'>\n\t<input type='hidden' name='id' value='<?php echo \$_REQUEST['id']; ?>' />\n\t<input type='hidden' name='no' value='<?php echo \$_REQUEST['no']; ?>' />\n\t<input type='hidden' name='mode' value='<?php echo \$_REQUEST['mode']; ?>' />"; $str_left[] = "[/FORM]"; $str_right[] = "\n\t</form>"; // ํด ํผ $str_left[] = "[FORM_TOOL]"; $str_right[] = "\n\t<form id='form_tool' name='form_tool' method='post'>\n\t<input type='hidden' name='target' />"; $str_left[] = "[/FORM_TOOL]"; $str_right[] = "\n\t</form>"; break; #๋ง์ด๋ฉ๋ด #๋ง์ด๋ฉ๋ด case 'mymenu.php': // ๋ฉ์ ์ ธ $str_left[] = "[VIEW_CHAT]"; $str_right[] = "\n\t<?php\n\tif (!empty(\$mini['skin']['data']['chat'])) {\n\t\tforeach (\$mini['skin']['data']['chat'] as \$key => \$val):\n\t\t\t\$mini['skin']['chat']['mode'] = \$val['mode'];\n\t\t\t\$mini['skin']['chat']['value'] = \$val['value'];\n\t?>"; $str_left[] = "[/VIEW_CHAT]"; $str_right[] = "\n\t<?php endforeach; } ?>"; // ์ชฝ์ง $str_left[] = "[MEMO_FORM]"; $str_right[] = "\n\t<form id='form_memo_list' name='form_memo_list' action='mymenu.x.php' method='post'>\n\t<input type='hidden' name='mode' />\n\t<input type='hidden' name='mode2' value='<?php echo \$_REQUEST['mode']; ?>' />\n\t<input type='hidden' name='url' value='<?php echo url(); ?>' />\n\t<input type='hidden' name='completeMode' value='ajax,reload' />"; $str_left[] = "[/MEMO_FORM]"; $str_right[] = "\n\t</form>"; // ์ชฝ์ง ๋ชฉ๋ก $str_left[] = "[MEMO_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$data;\n\tif (!empty(\$data) && is_array(\$data) && count(\$data) >= 1)\n\t\tforeach (\$data as \$key=>\$val):\n\t\t\tparseMemo(\$val);\n\t\t\t\$val['ment_notag'] = strCut(\$val['ment_notag'], 30, '...');\n\t\t\tif (\$val['target_member'] == \$mini['member']['no']) {\n\t\t\t\t\$val['name_him'] = \$val['name_from'];\n\t\t\t\t\$val['js_send_him'] = \$val['js_send_from'];\n\t\t\t}\n\t\t\tif (\$val['from_member'] == \$mini['member']['no']) {\n\t\t\t\t\$val['name_him'] = \$val['name_target'];\n\t\t\t\t\$val['js_send_him'] = \$val['js_send_target'];\n\t\t\t}\n\t\t\t\$mini['skin']['data'] = &\$val;\n\n\t?>"; $str_left[] = "[/MEMO_LOOP]"; $str_right[] = "\n\t<?php\n\t\tendforeach;\n\t?>"; // ์น๊ตฌ๋ชฉ๋ก $str_left[] = "[MEMO_FRIEND_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$data;\n\tif (!empty(\$data) && is_array(\$data) && count(\$data) >= 1)\n\t\tforeach (\$data as \$key=>\$val):\n\t\t\t\$mini['skin']['data'] = &\$val;\n\n\t?>"; $str_left[] = "[/MEMO_FRIEND_LOOP]"; $str_right[] = "\n\t<?php\n\t\tendforeach;\n\t?>"; // ํฌ์ธํธ๊ธฐ๋ก ๋ชฉ๋ก $str_left[] = "[LOG_POINT_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$data;\n\tif (!empty(\$data) && is_array(\$data) && count(\$data) >= 1)\n\t\tforeach (\$data as \$key=>\$val):\n\t\t\t\$mini['skin']['data'] = &\$val;\n\n\t?>"; $str_left[] = "[/LOG_POINT_LOOP]"; $str_right[] = "\n\t<?php\n\t\tendforeach;\n\t?>"; break; #์ชฝ์ง์ฐ๊ธฐ #์ชฝ์ง์ฐ๊ธฐ case 'memo.write.php': // ์ชฝ์ง๋ณด๋ด๊ธฐ $str_left[] = "[MEMO_WRITE_FORM]"; $str_right[] = "\n\t<form id='form_memo_write' name='form_memo_write' action='ajax.php' method='post'>\n\t<input type='hidden' name='mode' value='send_memo' />\n\t<input type='hidden' name='target_member' value='<?php echo \$_REQUEST['no']; ?>' />"; $str_left[] = "[/MEMO_WRITE_FORM]"; $str_right[] = "\n\t</form>"; break; #์ ๊ณ #์ ๊ณ case 'report.php': // ํผ $str_left[] = "[FORM]"; $str_right[] = "\n\t<form id='form_report' name='form_report' action='report.x.php' method='post'>\n\t<input type='hidden' name='id' value='<?php echo \$_REQUEST['id']; ?>' />\n\t<input type='hidden' name='mode' value='<?php echo \$_REQUEST['mode']; ?>' />\n\t<input type='hidden' name='no' value='<?php echo \$_REQUEST['no']; ?>' />"; $str_left[] = "[/FORM]"; $str_right[] = "\n\t</form>"; break; #๋น๋ฐ๋ฒํธ #๋น๋ฐ๋ฒํธ case 'pass.php': // ํผ $str_left[] = "[FORM]"; $str_right[] = "\n\t<form id='form_pass' name='form_pass' action='<?php echo \$data['path']; ?>' method='get'<?php if (!empty(\$_REQUEST['target'])) echo \" target='{\$_REQUEST['target']}'\"; ?>>\n\t<?php if (!empty(\$data['form'])) echo \$data['form']; ?>"; $str_left[] = "[/FORM]"; $str_right[] = "\n\t</form>"; break; #์๋ฃ๊ด๋ฆฌ #์๋ฃ๊ด๋ฆฌ case 'manage.php': // ํผ $str_left[] = "[FORM]"; $str_right[] = "\n\t<form id='form_manage' name='form_manage' action='manage.x.php' method='post'>\n\t<input type='hidden' name='id' value='<?php echo \$_REQUEST['id']; ?>' />\n\t<input type='hidden' name='mode' value='<?php echo \$_REQUEST['mode']; ?>' />\n\t<input type='hidden' name='report' value='<?php echo (!empty(\$_REQUEST['report']) ? 1 : 0); ?>' />\n\t<?php\n\t\tforeach (\$_REQUEST['no'] as \$val):\n\t\t\techo \"<input type='hidden' name='no[]' value='{\$val}' />\n\";\n\t\tendforeach;\n\t?>"; $str_left[] = "[/FORM]"; $str_right[] = "\n\t</form>"; // ์ ๊ณ ์ ๋ชฉ๋ก $str_left[] = "[REPORTER_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$target_name, \$report;\n\t\n\t\$tmp_ment = getStr(\$report['ment']);\n\n\tif (!empty(\$target_name) && is_array(\$target_name) && count(\$target_name) >= 1)\n\t\tforeach (\$target_name as \$key=>\$val):\n\t\t\t\$mini['skin']['name'] = \$val;\n\t\t\t\$mini['skin']['ment'] = \$tmp_ment[\$key];\n\t?>"; $str_left[] = "[/REPORTER_LOOP]"; $str_right[] = "\n\t<?php\n\t\tendforeach;\n\t?>"; // ์ ๊ณ ์ฌ์ ๋ชฉ๋ก $str_left[] = "[REPORTER_MENT_LOOP]"; $str_right[] = "\n\t<?php\n\tglobal \$report;\n\n\tif (!empty(\$report['ment'])) {\n\t\tforeach ( as \$key=>\$val):\n\t\t\t\$mini['skin']['ment'] = \$val;\n\t?>"; $str_left[] = "[/REPORTER_MENT_LOOP]"; $str_right[] = "\n\t<?php\n\t\tendforeach;\n\t}\n\t?>"; break; #์์ด๋/๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ #์์ด๋/๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ case 'login.find.php': // ์ฐพ๊ธฐ $str_left[] = "[FIND]"; $str_right[] = "\n\t<form id='form_find' name='form_find' action='login.find.php<?php echo getURI(\"mode\", \"?\"); ?>' method='post'>\n\t<input type='hidden' name='mode' />\n\t<input type='hidden' name='site' value='<?php echo \$mini['site']['no']; ?>' />\n\t"; $str_left[] = "[/FIND]"; $str_right[] = "\n\t</form>"; // ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ $str_left[] = "[FIND_PASS]"; $str_right[] = "\n\t<form id='form_find_pass' name='form_find_pass' action='login.find.php<?php echo getURI(\"mode\", \"?\"); ?>' method='post'>\n\t<input type='hidden' name='mode' value='pass_ok' />\n\t<input type='hidden' name='no' value='<?php echo \$_REQUEST['no']; ?>' />\n\t<input type='hidden' name='site' value='<?php echo \$mini['site']['no']; ?>' />\n\t<input type='hidden' name='answer' value='<?php if (!empty(\$_REQUEST['qna_answer'])) echo \$_REQUEST['qna_answer']; ?>' />\n\t"; $str_left[] = "[/FIND_PASS]"; $str_right[] = "\n\t</form>"; break; } #๋ชจ๋ ๊ณณ // ๋ก๊ทธ์ธ $str_left[] = "[LOGIN]"; $str_right[] = "\n\t<form id='form_login' name='form_login' action='login.php<?php echo getURI(\"mode\", \"?\"); ?>' method='post'>\n\t<input type='hidden' name='mode' value='login' />\n\t<input type='hidden' name='completeMode' value='ajax,reload.parent' />\n\t<input type='hidden' name='completeScript' value='login_autosave' />"; $str_left[] = "[LOGIN_NORMAL]"; $str_right[] = "\n\t<form id='form_login' name='form_login' action='login.php<?php echo getURI(\"mode\", \"?\"); ?>' method='post'>\n\t<input type='hidden' name='mode' value='login' />"; $str_left[] = "[/LOGIN]"; $str_right[] = "\n\t</form>"; // ํด ๋ ์ด์ด $str_left[] = "[TOOL /]"; $str_right[] = "\n\t<div id='tool' style='display:none;' class='tool'>\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/x_gray.gif' border='0' class='hand' style='vertical-align:middle;' alt='์ญ์ ' title='์ญ์ ' <?php echo \$mini['skin']['js_post_del']; ?> />\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/alert.gif' border='0' class='hand' style='vertical-align:middle;' alt='๊ด๋ฆฌ' title='๊ด๋ฆฌ' <?php echo \$mini['skin']['js_pop_post_manage']; ?> />\n\t</div>\n\t"; // ํด ๋๊ธ ๋ ์ด์ด $str_left[] = "[TOOL_CMT /]"; $str_right[] = "\n\t<div id='tool_cmt' style='display:none;' class='tool'>\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/x_gray.gif' border='0' class='hand' style='vertical-align:middle;' alt='์ญ์ ' title='์ญ์ ' <?php echo \$mini['skin']['js_cmt_del']; ?> />\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/alert.gif' border='0' class='hand' style='vertical-align:middle;' alt='๊ด๋ฆฌ' title='๊ด๋ฆฌ' <?php echo \$mini['skin']['js_pop_cmt_manage']; ?> />\n\t</div>"; // ํด ์ชฝ์ง ์น๊ตฌ๋ชฉ๋ก ๋ ์ด์ด $str_left[] = "[TOOL_MEMO /]"; $str_right[] = "\n\t<div id='tool' style='display:none;' class='tool'>\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/against.gif' border='0' class='hand' style='vertical-align:middle;' alt='์ฐจ๋จ'1 title='์ฐจ๋จ' <?php echo \$mini['skin']['js_memo_block']; ?> />\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/x_gray.gif' border='0' class='hand' style='vertical-align:middle;' alt='์ญ์ ' title='์ญ์ ' <?php echo \$mini['skin']['js_friend']; ?> />\n\t</div>"; // ํด ์ชฝ์ง ๋ชฉ๋ก ๋ ์ด์ด $str_left[] = "[TOOL_MEMO_LIST /]"; $str_right[] = "\n\t<div id='tool' style='display:none;' class='tool'>\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/paper-clip.gif' border='0' class='hand' style='vertical-align:middle;' alt='๋ณด๊ด' title='๋ณด๊ด' <?php echo \$mini['skin']['js_memo_save_action']; ?> />\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/x_gray.gif' border='0' class='hand' style='vertical-align:middle;' alt='์ญ์ ' title='์ญ์ ' <?php echo \$mini['skin']['js_del']; ?> />\n\t</div>"; // ํด ์ชฝ์ง ๋ณด๊ดํจ ๋ ์ด์ด $str_left[] = "[TOOL_MEMO_SAVE /]"; $str_right[] = "\n\t<div id='tool' style='display:none;' class='tool'>\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/paper-clip.gif' border='0' class='hand' style='vertical-align:middle;' alt='๋ณด๊ด' title='๋ณด๊ด' <?php echo \$mini['skin']['js_memo_save_action']; ?> />\n\t\t<img src='<?php echo \$mini['skin']['dir']; ?>image/icon/x_gray.gif' border='0' class='hand' style='vertical-align:middle;' alt='์ญ์ ' title='์ญ์ ' <?php echo \$mini['skin']['js_del']; ?> />\n\t</div>"; //// ๋ชฉ๋ก ํธ์ถ if (strpos($output, "[LIST_INC]") !== false) { $fp = fopen("{$mini['sdir']}list.php", "r"); $tmp_include_data = ''; while (!feof($fp)) { $tmp_include_data .= fgets($fp, 4096); } fclose($fp); unset($mat); preg_match("/\\<\\!\\-\\- \\[LIST\\] \\-\\-\\>(.+)\\<\\!\\-\\- \\[\\/LIST\\] \\-\\-\\>/sU", $tmp_include_data, $mat); $str_left[] = "[LIST_INC]"; $str_right[] = $mat[1]; $str_left[] = "[/LIST_INC]"; $str_right[] = ""; unset($tmp_include_data); unset($mat); } //// ๊ฒ์ ํธ์ถ if (strpos($output, "[SEARCH_INC]") !== false) { $fp = fopen("{$mini['sdir']}list.php", "r"); $tmp_include_data = ''; while (!feof($fp)) { $tmp_include_data .= fgets($fp, 4096); } fclose($fp); unset($mat); preg_match("/\\<\\!\\-\\- \\[SEARCH\\] \\-\\-\\>(.+)\\<\\!\\-\\- \\[\\/SEARCH\\] \\-\\-\\>/sU", $tmp_include_data, $mat); $str_left[] = "[SEARCH_INC]"; $str_right[] = $mat[1]; $str_left[] = "[/SEARCH_INC]"; $str_right[] = ""; unset($tmp_include_data); unset($mat); } //// ๋๊ธ ๋ชฉ๋ก ํธ์ถ if (strpos($output, "[CMT_INC /]") !== false) { $str_left[] = "[CMT_INC /]"; $str_right[] = "\n\t\t\t\t<?php \n\t\t\t\tif (!empty(\$mini['board']['use_comment'])) {\n\t\t\t\t\tinclude \"{$mini['sdir']}cmt.php\";\n\t\t\t\t}\n\t\t\t\t?>"; } //// ์นํ $output = str_replace($str_left, $str_right, $output); $str_left = $str_right = array(); //// PHP ๊ตฌ๋ฌธ์ ๋จผ์ ๋บ๋ค preg_match_all("/\\<\\?(.+)\\?\\>/isU", $output, $mat); foreach ($mat[0] as $key => $val) { $output = str_replace($val, "<!--exchange-miniboard-{$key}-->", $output); } //// ํน๋ณ // depth ์ฆ๊ฐ $preg_left[] = "/\\[depth:([^\\]]*)\\]/i"; $preg_right[] = "<?php echo !preg_match(\"/[^0-9]/\", \"\\1\") ? (int)(\"\\1\" * \$val['depth']) : str_repeat(\"\\1\", \$val['depth']); ?>"; $preg_left[] = "/\\[depth0:([^\\]]*)\\]/i"; $preg_right[] = "<?php echo !preg_match(\"/[^0-9]/\", \"\\1\") ? (int)(\"\\1\" * \$val['depth']-1) : str_repeat(\"\\1\", \$val['depth']-1); ?>"; // include $preg_left[] = "/\\[include:([^\\]]+)\\]/i"; $preg_right[] = "<?php include \"{$mini['dir']}\\1\"; ?>"; // ์คํจ๊ฒฝ๋ก๊ฐ ํฌํจ๋ include if (!empty($mini['sdir'])) { $preg_left[] = "/\\[sinclude:([^\\]]+)\\]/i"; $preg_right[] = "<?php include \"{$mini['sdir']}\\1\"; ?>"; } // ์ฃผ์ $preg_left[] = "/^\\s*?\\#\\#.+\$/m"; $preg_right[] = ""; //// ๋ ผ๋ฆฌ๋ฌธ $preg_left[] = "/\\[if:([a-z0-9_]+)\\.([a-z0-9_]+)\\.([a-z0-9_]+)\\.([a-z0-9_]+)\\]/i"; $preg_right[] = "<?php if (!empty(\$mini['skin']['\\1']['\\2']['\\3']['\\4'])) { ?>"; $preg_left[] = "/\\[if:([a-z0-9_]+)\\.([a-z0-9_]+)\\.([a-z0-9_]+)\\]/i"; $preg_right[] = "<?php if (!empty(\$mini['skin']['\\1']['\\2']['\\3'])) { ?>"; $preg_left[] = "/\\[\\!if:([a-z0-9_]+)\\.([a-z0-9_]+)\\.([a-z0-9_]+)\\]/i"; $preg_right[] = "<?php if (empty(\$mini['skin']['\\1']['\\2']['\\3'])) { ?>"; $preg_left[] = "/\\[if:([a-z0-9_]+)\\.([a-z0-9_]+)\\]/i"; $preg_right[] = "<?php if (!empty(\$mini['skin']['\\1']['\\2'])) { ?>"; $preg_left[] = "/\\[\\!if:([a-z0-9_]+)\\.([a-z0-9_]+)\\]/i"; $preg_right[] = "<?php if (empty(\$mini['skin']['\\1']['\\2'])) { ?>"; $preg_left[] = "/\\[if:([a-z0-9_]+)\\]/i"; $preg_right[] = "<?php if (!empty(\$mini['skin']['\\1'])) { ?>"; $preg_left[] = "/\\[\\!if:([a-z0-9_]+)\\]/i"; $preg_right[] = "<?php if (empty(\$mini['skin']['\\1'])) { ?>"; $str_left[] = "[endif]"; $str_right[] = "<?php } ?>"; //// ๋ณ์ $preg_left[] = "/\\[:([a-z0-9_]+)\\.([a-z0-9_]+)\\.([a-z0-9_]+)\\.([a-z0-9_]+):\\]/i"; $preg_right[] = "<?php echo \$mini['skin']['\\1']['\\2']['\\3']['\\4']; ?>"; $preg_left[] = "/\\[:([a-z0-9_]+)\\.([a-z0-9_]+)\\.([a-z0-9_]+):\\]/i"; $preg_right[] = "<?php echo \$mini['skin']['\\1']['\\2']['\\3']; ?>"; $preg_left[] = "/\\[:([a-z0-9_]+)\\.([a-z0-9_]+):\\]/i"; $preg_right[] = "<?php echo \$mini['skin']['\\1']['\\2']; ?>"; $preg_left[] = "/\\[:([a-z0-9_]+):\\]/i"; $preg_right[] = "<?php echo \$mini['skin']['\\1']; ?>"; //// ๋ณํ $output = str_replace($str_left, $str_right, $output); $output = preg_replace($preg_left, $preg_right, $output); //// PHP ๊ตฌ๋ฌธ์ ๋ถ์ธ๋ค $output = preg_replace("/\\<\\!\\-\\-exchange\\-miniboard\\-([0-9]+)\\-\\-\\>/e", '$mat[0][\\1]', $output); if ($mode == 'url') { //// ์ฐ๊ธฐ $fp = fopen(preg_replace("/\\.mini\$/i", ".php", $url), "w+"); flock($fp, LOCK_EX); if (!$fp || !fwrite($fp, $output)) { __error("[{$url}] ํ์ผ ์ฐ๊ธฐ๋ฅผ ์คํจ ํ์ต๋๋ค. ํ์ผ ๊ถํ์ ํ์ธํด ๋ณด์ธ์"); } flock($fp, LOCK_UN); fclose($fp); } else { $output = preg_replace_callback("/\\<\\?(php)? echo ([^;]+)\\; \\?\\>/i", create_function('$matches', "global \$mini; return eval(\"return \".stripslashes(\$matches[2]).\";\");"), $output); return $output; } } }
/** * ์ ๋ ฅ ๋ณ์ ์ฒดํฌ - ๊ทธ๋ฃน * @class admin.site * @param $data: ์๋ฃ */ function checkFieldSite(&$data) { global $mini; if (!is_array($data)) { __error("์ ๋ ฅ๋ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค"); } // DB ์ปฌ๋ผ ๋ก๋ iss($col); $col = getColumns($mini['name']['site']); foreach ($data as $key => $val) { switch ($key) { // ์ญ์ ์ค์ case 'date': case 'no': unset($data[$key]); break; // ๊ทธ๋ฃน์ฐ๊ฒฐ // ๊ทธ๋ฃน์ฐ๊ฒฐ case 'site_link': if (is_array($val)) { $data[$key] = "[" . implode("][", $val) . "]"; } break; // ์ถ๊ฐํ๋ // ์ถ๊ฐํ๋ case 'field': if (is_array($val)) { str($data[$key], 'encode'); $data[$key] = serialize($data[$key]); } else { __error('์ถ๊ฐํ๋ ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค'); } break; // ๊ฐ์ ํญ๋ชฉ์ค์ // ๊ฐ์ ํญ๋ชฉ์ค์ case 'join_setting': if (is_array($val)) { $data[$key] = serialize($data[$key]); } else { __error('๊ฐ์ ํญ๋ชฉ์ค์ ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค'); } break; // ํ ํ๋ฆฟ // ํ ํ๋ฆฟ case 'template': if (is_array($val)) { str($data[$key], 'encode'); $data[$key] = serialize($data[$key]); } else { __error('ํ ํ๋ฆฟ ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค'); } break; // ๋ฉ์ผ // ๋ฉ์ผ case 'mail': check($val, "type:mail, name:๋ํ ๋ฉ์ผ"); break; // ํด๋์ ํ // ํด๋์ ํ case 'cp': check($val, "type:cp, name:๋ํ ํด๋์ ํ, is_not:1"); break; // ํ์์ํ๋ชฉ๋ก // ํ์์ํ๋ชฉ๋ก case 'status': if (!empty($val)) { $tmp = array_unique(getStr($val)); if (is_array($tmp)) { $data[$key] = "[" . implode("][", $tmp) . "]"; } } break; // ๊ทธ๋ฃน์ด๋ฆ ํ๊ทธ์ฒ๋ฆฌ // ๊ทธ๋ฃน์ด๋ฆ ํ๊ทธ์ฒ๋ฆฌ case 'name': // str($data[$key], 'encode'); break; // ๊ธฐ๋ณธ(๋จ์ผํ๋) // ๊ธฐ๋ณธ(๋จ์ผํ๋) default: // tmp ๊ฐ ์ ์ธ if (preg_match("/^tmp_/i", $key)) { unset($data[$key]); } // ๋ฐฐ์ด ๊ฐ ์ ์ธ if (is_array($val)) { __error("[{$key}] ๊ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค"); } // ์กด์ฌํ์ง ์๋ ํ๋์ผ ๋ ๋นผ๊ธฐ if (!inStr($key, $col)) { unset($data[$key]); } // ๊ถํ if (preg_match("/permit_/i", $key) && $val && count(getStr($val)) > 1) { $data[$key] = "[" . implode("][", array_unique(getStr($val))) . "]"; } } } }
/** ์๋ฃ ๋น๋ฐ๋ฒํธ ์ผ์น์ฌ๋ถ ํ์ธ * @class io * @param $data: ์๋ฃ ๋ฐ์ดํฐ $move: ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ์ด๋ ์ฌ๋ถ $error: ๋ชจ๋ ์ง์ * @return Boolean */ function checkPass($data, $move = 0, $error = '') { global $mini; iss($_REQUEST['id']); iss($_REQUEST['group']); iss($_REQUEST['no']); iss($_REQUEST['pass_encode']); if (!empty($mini['member']['level_admin'])) { return true; } if (!empty($data['target_member']) && empty($mini['log'])) { __error('๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค'); } if (!empty($data['target_member']) && !empty($mini['log']) && $data['target_member'] != $mini['member']['no']) { __error('๊ถํ์ด ์์ต๋๋ค'); } if (empty($data['target_member'])) { if (empty($_REQUEST['pass_encode'])) { if ($move) { $url = preg_match("/^upload\\./i", $mini['filename']) && !empty($_REQUEST['pageURL']) ? $_REQUEST['pageURL'] : url(); if (!empty($_REQUEST['iframe'])) { $url = ''; } __error(array('mode' => !empty($error) ? $error : 'goto' . (!empty($_REQUEST['iframe']) ? '.parent' : ''), 'url' => "pass.php?id={$_REQUEST['id']}&group={$_REQUEST['group']}&url={$url}")); } else { __error('๊ถํ์ด ์์ต๋๋ค'); } } else { if ($_REQUEST['pass_encode'] != md5("{$data['pass']}|{$mini['ip']}|" . session_id())) { __error("๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค"); } } } return false; }
/** ๋ฉ์ผ ๋ณด๋ด๊ธฐ * @class notification * @param -mode: ๋ฉ์ผ ๋ณด๋ด๋ ๋ฐฉ๋ฒ (auto) #auto ์๋์ธ์ #text #html #both -file: ์ฒจ๋ถํ์ผ, array ๊ฐ๋ฅ, _FILES array ๋ฅผ ๋๊ฒจ์ผ ํจ -ment: ๋ด์ฉ -title: ์ ๋ชฉ -from_name: ๋ณด๋ด๋์ฌ๋ ์ด๋ฆ -from_mail: ๋ณด๋ด๋์ฌ๋ ๋ฉ์ผ -to_name: ๋ฐ๋์ฌ๋ ์ด๋ฆ -to_mail: ๋ฐ๋์ฌ๋ ๋ฉ์ผ -error_mail: ์๋ฌ๋ฌ์๋ ๋ฐ์๋ฉ์ผ -is_base: base64์ฌ์ฉ -is_socket: socket ์ ์ก ์ฌ์ฉ -socket_host: -socket_port: * @return */ function send_mail($param) { global $mini; $param = param($param); def($param['mode'], 'auto'); def($param['is_base'], '1'); def($param['is_socket'], '1'); $header = $type = $ment_file = ''; $eof = "\r\n"; $param['ment'] = trim($param['ment']); $param['title'] = trim($param['title']); $title = $param['title']; // ์ธ์ฝ๋ฉ if ($param['is_base']) { if ($param['to_name']) { $param['to_name'] = "=?{$mini['set']['lang']}?B?" . base64_encode($param['to_name']) . "?= "; } if ($param['from_name']) { $param['from_name'] = "=?{$mini['set']['lang']}?B?" . base64_encode($param['from_name']) . "?= "; } if ($param['title']) { $param['title'] = "=?{$mini['set']['lang']}?B?" . base64_encode($param['title']) . "?="; } else { $param['title'] = 'No.title'; } } if (!empty($param['file'])) { foreach ($param['file'] as $key => $val) { if ($val['size']) { $fp = fopen($val['tmp_name'], "rb"); if ($fp) { $ment_file .= "{$eof}--------------010504050703010207050203{$eof}"; $ment_file .= "Content-Type: application/octet-stream; charset={$mini['set']['lang']}{$eof}"; $ment_file .= "Content-Transfer-Encoding: base64{$eof}"; if ($param['is_base']) { $ment_file .= "Content-Disposition: attachment; filename=\"=?{$mini['set']['lang']}?B?" . base64_encode($val['name']) . "?=\"{$eof}{$eof}"; } else { $ment_file .= "Content-Disposition: attachment; filename=\"{$val['name']}\"{$eof}{$eof}"; } $ment_file .= trim(chunk_split(base64_encode(fread($fp, $val['size'])))); fclose($fp); $param['mode'] = 'both'; } } } } // ์๋ ์ ํ if ($param['mode'] == 'auto') { if (eregi("^\\<", $param['ment'])) { $param['mode'] = 'html'; } elseif (strpos($param['ment'], '<') !== false) { $param['mode'] = 'both'; } else { $param['mode'] = 'text'; } } switch ($param['mode']) { case 'text': $type = "text/plain"; break; case 'html': $type = "text/html"; break; case 'both': $type = "multipart/mixed"; //$param['ment'] = nl2br($param['ment']); //$param['ment'] = chunk_split(trim($param['ment'])); break; default: __error('send_mail ํจ์ mode ๊ฐ ์๋ฌ'); } //// ํค๋ ์ ๋ณด ์์ฑ $header .= "Return-Path: {$param['from_mail']}{$eof}"; // ๋ฆฌํด if (!empty($param['is_notice'])) { $header .= "Disposition-Notification-To: <{$param['from_mail']}>{$eof}"; } // ์์ ํ์ธ $header .= "Date: " . date("D, j M Y H:i:s O") . "{$eof}"; // ์๊ฐ $header .= "From: {$param['from_name']}<{$param['from_mail']}>{$eof}"; // ๋ณด๋ด๋์ฌ๋ $header .= "MIME-Version: 1.0{$eof}"; $header .= "X-Mailer: the M Mailer beta{$eof}"; if (!empty($param['error_mail'])) { $header .= "Errors-To: <{$param['error_mail']}>{$eof}"; } $header .= "Content-Type: {$type}"; //$header .= "To: {$param['to_name']}<{$param['to_mail']}>{$eof}"; // ๋ณด๋ด๋์ฌ๋ //$header .= "Subject: {$param['title']}{$eof}"; if ($param['mode'] == 'both') { $header .= ";{$eof} boundary=\"------------010504050703010207050203\"{$eof}"; } else { $header .= "; charset={$mini['set']['lang']}{$eof}"; $header .= "Content-Transfer-Encoding: 8bit{$eof}"; } $header .= "Status:"; $ment_tmp = ''; if ($param['mode'] == 'both') { $ment_tmp .= "This is a multi-part message in MIME format.{$eof}"; } else { $ment_tmp .= $param['ment'] . $eof; } // ๋ณตํฉ ์ถ๋ ฅ if ($param['mode'] == 'both') { $ment_tmp .= "--------------010504050703010207050203{$eof}"; $ment_tmp .= "Content-Type: text/html; charset={$mini['set']['lang']}{$eof}"; $ment_tmp .= "Content-Transfer-Encoding: 8bit{$eof}{$eof}"; if ($param['ment']) { $ment_tmp .= $param['ment'] . $eof . $eof; } if ($ment_file) { $ment_tmp .= $ment_file; } //$ment_tmp .= "--------------20070101--{$eof}"; } if (!$param['is_socket']) { return mail($param['to_mail'], $param['title'], $ment_tmp, $header); } else { if (!empty($mini['set']['socket_host'])) { def($param['socket_host'], $mini['set']['socket_host']); } if (!empty($mini['set']['socket_port'])) { def($param['socket_port'], $mini['set']['socket_port']); } def($param['socket_host'], ini_get("SMTP")); def($param['socket_port'], ini_get("smtp_port")); $fp = @fsockopen($param['socket_host'], $param['socket_port'], $errno, $errstr, 5); if ($fp) { $rcv = fgets($fp, 1024); fputs($fp, "HELO {$_SERVER['SERVER_NAME']}{$eof}"); $rcv = fgets($fp, 1024); fputs($fp, "MAIL FROM:{$param['from_mail']}{$eof}"); $rcv = fgets($fp, 1024); fputs($fp, "RCPT TO:{$param['to_mail']}{$eof}"); $rcv = fgets($fp, 1024); fputs($fp, "DATA{$eof}"); fputs($fp, "Subject: {$param['title']}{$eof}"); fputs($fp, "{$header}{$eof}{$eof}"); fputs($fp, "{$ment_tmp}{$eof}"); fputs($fp, ".{$eof}"); $rcv = fgets($fp, 1024); fputs($fp, "QUIT{$eof}"); fclose($fp); return 1; } else { return 0; } } }
/** * ์ ๋ ฅ ๋ณ์ ์ฒดํฌ - ๊ฒ์ํ * @class admin.board * @param $data: ์๋ฃ */ function checkFieldBoard(&$data) { global $mini; if (!is_array($data)) { __error("์ ๋ ฅ๋ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค"); } // DB ์ปฌ๋ผ ๋ก๋ iss($col); $col = getColumns($mini['name']['admin']); foreach ($data as $key => $val) { switch ($key) { // ์ญ์ ์ค์ case 'date': case 'no': case 'dir': unset($data[$key]); break; // ๊ทธ๋ฃน์ฐ๊ฒฐ // ๊ทธ๋ฃน์ฐ๊ฒฐ case 'site_link': if (is_array($val)) { $data[$key] = "[" . implode("][", $val) . "]"; } break; // ์นดํ ๊ณ ๋ฆฌ // ์นดํ ๊ณ ๋ฆฌ case 'category': if (is_array($val)) { foreach ($val as $key2 => $val2) { check($val2['no'], 'type:num, name: ์นดํ ๊ณ ๋ฆฌ๋ฒํธ'); check($val2['depth'], 'type:num, name: ์นดํ ๊ณ ๋ฆฌ๋จ๊ณ, is_not:1'); check($val2['name'], 'name: ์นดํ ๊ณ ๋ฆฌ์ด๋ฆ'); str($data[$key][$key2]['name'], 'encode'); } $data[$key] = serialize($data[$key]); } else { __error('์นดํ ๊ณ ๋ฆฌ ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค'); } break; // ์ถ๊ฐํ๋ // ์ถ๊ฐํ๋ case 'field': if (is_array($val)) { str($data[$key], 'encode'); $data[$key] = serialize($data[$key]); } else { __error('์ถ๊ฐํ๋ ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค'); } break; // ์ต์ // ์ต์ case 'options': if (is_array($val)) { str($data[$key], 'encode'); $data[$key] = serialize($data[$key]); } else { __error('์คํจ์ต์ ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค'); } break; // ๋จ์ถํค // ๋จ์ถํค case 'key_map': if (is_array($val)) { str($data[$key], 'encode'); $data[$key] = serialize($data[$key]); } else { __error('๋จ์ถํค ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค'); } break; // ๊ธฐ๋ณธ(๋จ์ผํ๋) // ๊ธฐ๋ณธ(๋จ์ผํ๋) default: // tmp ๊ฐ ์ ์ธ if (preg_match("/^tmp_/i", $key)) { unset($data[$key]); } // ๋ฐฐ์ด ๊ฐ ์ ์ธ if (is_array($val) && !preg_match("/^(config)\$/", $key)) { __error("[{$key}] ๊ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค"); } // ์กด์ฌํ์ง ์๋ ํ๋์ผ ๋ ๋นผ๊ธฐ if (!inStr($key, $col)) { unset($data[$key]); } // ๊ถํ if (preg_match("/permit_/i", $key) && $val && count(getStr($val)) > 1) { $data[$key] = "[" . implode("][", array_unique(getStr($val))) . "]"; //__error($data[$key]); } break; } } }
$core->setBlog($_SESSION['sess_blog_id']); if (!$core->blog->id) { throw new Exception('Permission denied.'); } } elseif ($core->auth->sessionExists()) { # If we have a session we launch it now try { if (!$core->auth->checkSession()) { # Avoid loop caused by old cookie $p = $core->session->getCookieParameters(false, -600); $p[3] = '/'; call_user_func_array('setcookie', $p); http::redirect('auth.php'); } } catch (Exception $e) { __error(__('Database error'), __('There seems to be no Session table in your database. Is Dotclear completly installed?'), 20); } # Check nonce from POST requests if (!empty($_POST)) { if (empty($_POST['xd_check']) || !$core->checkNonce($_POST['xd_check'])) { http::head(412); header('Content-Type: text/plain'); echo 'Precondition Failed'; exit; } } if (!empty($_REQUEST['switchblog']) && $core->auth->getPermissions($_REQUEST['switchblog']) !== false) { $_SESSION['sess_blog_id'] = $_REQUEST['switchblog']; if (isset($_SESSION['media_manager_dir'])) { unset($_SESSION['media_manager_dir']); }
__error("target folder {$targetfolder} does not exist"); return 1; } _debug("target folder is {$targetFolder}"); $tempFile = $_FILES['Filedata']['tmp_name']; $targetFile = rtrim($targetFolder, '/') . "/" . $_FILES['Filedata']['name']; // you may want to do some additional checks on the uploaded files // here. if (file_exists($targetFile)) { __error("target file {$targetFile} already exists!"); return 1; } // We do not allow to upload files matching the // global $no_access pattern. See _config/conf.php for details. if (matches_noaccess_pattern($targetFile)) { __error("file {$targetFile} matches \$no_access pattern ({$no_access})"); return 1; } move_uploaded_file($tempFile, $targetFile); echo '1'; /** TODO: - currently, the implementation only works if the user has configured the same home directory like given in the global configuration as "home_dir", since we have no access to the session for authenticating the user. Notes: - We don't want to pass the absolute directory to the home directory by a post variable. This enables everybody to move a file from a random location on the server to any other location.
/** ์ฝ๋ฉํธ ๋ชฉ๋ก ๋ฝ๊ธฐ * @class io * @param -name: ๊ฒ์๋ฐฐ์ด์ด๋ฆ (list_cmt) -id: ๊ฒ์ํ์์ด๋, board_data๊ฐ ์์ผ๋ฉด ์์ด๋ ๋๋ค -page: ํ์ด์ง (๋ง์ง๋งํ์ด์ง) -target_post: ๋์๊ฒ์๋ฌผ๋ฒํธ. view๊ฐ ์์ผ๋ฉด ์์ด๋ ๋๋ค $board_data: ๊ฒ์ํ์ ๋ณด $view: ๊ฒ์๋ฌผ์ ๋ณด * @return Array */ function getListCmt($param, $board_data = '', $view = '') { global $mini; $param = param($param); $output = array(); iss($param['page']); def($param['name'], 'list_cmt'); def($_REQUEST['cPage'], $param['page']); def($_REQUEST['cPage'], 999999999999); //// ๊ฒ์ํ์ ๋ณด if (empty($board_data) && !empty($param['id'])) { getBoard($param['id']); if (empty($mini['site']) || $mini['site']['no'] != $mini['board']['site']) { getSite($mini['board']['site']); } } else { if (empty($board_data) && !empty($mini['board'])) { $board_data = $mini['board']; } } //// ๊ฒ์๋ฌผ์ ๋ณด if (empty($view)) { $view = sql("SELECT * FROM {$board_data['table']} WHERE no={$param['target_post']}"); if (!is_array($view)) { __error('๊ฒ์๋ฌผ์ด ์กด์ฌํ์ง ์์ต๋๋ค' . ' (' . __FILE__ . ' line ' . __LINE__ . ' in ' . __FUNCTION__ . ')'); } parsePost($view); $output['view'] = $view; } else { $param['target_post'] = $view['no']; } $is_comment_page = !empty($board_data['use_comment_page']) && !empty($board_data['list_count_comment']) ? 1 : 0; if (!$is_comment_page) { $board_data['list_count_comment'] = 9999999; } //// ๊ณต์ง์ฌํญ ์ ์ธ $is_first = 0; if ($is_comment_page || empty($_REQUEST['cQuick']) && empty($_REQUEST['cS']) && empty($_REQUEST['cSort'])) { $_REQUEST['cS']['notice!'] = 0; $is_first = 1; } $_REQUEST['cAnd'] = 1; //// ๊ฒ์ ์ฒ๋ฆฌ setSearch("\n\t\t\tname: {$param['name']}\n\t\t\tquickName: cQuick\n\t\t\tsName: cS\n\t\t\tandName: cAnd\n\t\t\tis_simple: 1\n\t\t"); //// ๊ธฐ๋ณธ ๊ฒ์์ฟผ๋ฆฌ ์ง์ check($param['target_post'], 'type:num, name:๊ฒ์๋ฌผ๋ฒํธ'); $tmp_trackback = !empty($board_data['use_trackback_cmt']) ? '' : " and trackback=''"; $mini['list'][$param['name']]['where'] = !empty($mini['list'][$param['name']]['where']) ? $mini['list'][$param['name']]['where'] . " and target_post={$param['target_post']}{$tmp_trackback}" : "WHERE target_post={$param['target_post']}{$tmp_trackback}"; //// ๊ณต์ง์ฌํญ ๋ก๋ if ($is_first) { $notice = sql("q:SELECT * FROM {$board_data['table_cmt']} WHERE notice=1 and target_post={$param['target_post']} ORDER BY num, mode:array"); $output['notice'] = $notice; } //// ์ ๋ ฌ ์ฒ๋ฆฌ setSort("\n\t\t\tname: {$param['name']}\n\t\t\tsortName: cSort\n\t\t\ttable: {$board_data['table_cmt']}\n\t\t\torder: ORDER BY num, reply\n\t\t\torder_desc: ORDER BY num DESC, reply ASC\n\t\t"); //// ๋ฆฌ์คํธ $data = getList("\n\t\t\tname: {$param['name']}\n\t\t\tlist: {$board_data['list_count_comment']}\n\t\t\ttable: {$board_data['table_cmt']}\n\t\t\tpageName: cPage\n\t\t\tdivName: cDiv\n\t\t\tstartName: cStart\n\t\t"); $output['data'] = $data; // pr($mini['list'][$param['name']]); //// ํธ๋๋ฐฑ ๊ฐ์ด ๋ฝ๊ธฐ /* $t_data = array(); if (!empty($board_data['use_trackback_cmt'])) { $t_data = sql("q:SELECT * FROM {$board_data['table_cmt']} WHERE target_post={$view['no']} and trackback!='' ORDER BY num, mode:array"); $output['data'] = array_merge($t_data, $output['data']); unset($t_data); } */ //// ํธ๋๋ฐฑ ๋ฐ๋ก ๋ฝ๊ธฐ if ($is_first && empty($board_data['use_trackback_cmt'])) { $t_data = sql("q:SELECT * FROM {$board_data['table_cmt']} WHERE target_post={$view['no']} and trackback!='' ORDER BY num, mode:array"); $output['trackback'] = $t_data; } return $output; }
/** ํ์ผ ์ ๋ก๋ * @class file * @param -target: $_FILES ์ค์์ ํ๋๋ง ์ง์ ํ key๊ฐ -filename: ํ์ผ๋ช ๊ฐ์ ์ง์ -is_copy: copy๋ฅผ ์ฌ์ฉํ๋ค * @return Array ์ฑ๊ณตํ _FILES ๋ฐฐ์ด */ function uploadFile($param = '') { global $mini, $_FILES; iss($param); $param = param($param); iss($param['target']); iss($success); def($param['is_copy'], 0); foreach ($_FILES as $key => $val) { //// ํ๊ฒ ์ฒดํฌ if ($param['target'] && $param['target'] != $key) { continue; } //// ํ์ผ๋ช ๊ฐ์ ์ง์ if (!empty($param['filename']) && !empty($val['path'])) { $val['path'] = dirname($val['path']) . '/' . $param['filename']; $val['name_insert'] = $param['filename']; } //// ํ์ผ ์ ๋ก๋ if (!empty($val['path'])) { if ($param['is_copy']) { $result = copy($val['tmp_name'], $val['path']); } else { $result = move_uploaded_file($val['tmp_name'], $val['path']); } if ($result) { $success[] = $val; } else { foreach ($success as $val2) { @unlink($val2['path']); } __error("[{$val['tmp_name']}] ํ์ผ ์ ๋ก๋์ ์คํจํ์ต๋๋ค"); } } } return $success; }
/** * ๋ก๊ทธ์ธ * @class login * @param $data: POST array -site: ๊ทธ๋ฃน๋ฒํธ -board: ๊ฒ์ํ๋ฒํธ -is_passed: ๋ฌด์กฐ๊ฑด๋ก๊ทธ์ธ[0!|1] */ function setLogin(&$data, $param) { global $mini; $param = param($param); iss($data['uid']); iss($data['pass']); iss($data['pass_encode']); iss($data['autologin']); iss($mini['set']['use_login_session']); iss($pass_after); iss($key_login); iss($autologin_after); def($mini['this']['script'], $_REQUEST['script']); def($mini['this']['script'], 'back'); def($mini['set']['lock_login'], 5); def($param['is_passed'], 0); $site_data = $board_data = array(); $site = ''; if (empty($param['site'])) { __error('์ ํ๋ ๊ทธ๋ฃน์ด ์์ต๋๋ค.' . ' (' . __FILE__ . ' line ' . __LINE__ . ' in ' . __FUNCTION__ . ')'); } //// ๊ทธ๋ฃน ๋ก๋ if (!empty($mini['site']) && $mini['site']['no'] == $param['site']) { $site_data = $mini['site']; } else { $site_data = getSite($param['site'], 1); } //// ๊ฒ์ํ ๋ก๋ if (!empty($param['board'])) { if (!empty($mini['board']) && $mini['board']['no'] == $param['board']) { $board_data = $mini['board']; } else { $board_data = getBoard($param['board'], 1); } } else { if (!empty($mini['board']['site']) && $mini['board']['site'] == $site_data['no']) { $board_data = $mini['board']; } } //// ๋ณ์ ๊ฒ์ฌ check($data['uid'], "name: ์์ด๋"); if (!$param['is_passed']) { check($data['pass_encode'], "type:id, name:์ํธํ๋ ๋น๋ฐ๋ฒํธ, min:16, max:40"); } if (!isset($site_data)) { __error('์ ํ๋ ๊ทธ๋ฃน์ด ์์ต๋๋ค.'); } $data['uid'] = mysql_escape_string($data['uid']); //// ๋ฏธ๋์์ด ๋ก๊ทธ์ธ if (preg_match("/^\\@/", $data['uid'])) { __error('์ค๋น์ค ์ ๋๋ค.'); } else { $site = "[{$site_data['no']}]"; // ๊ทธ๋ฃน์ ๊ทธ๋ฃน์ฐ๊ฒฐ if (!empty($site_data['site_link'])) { $site .= $site_data['site_link']; } // ๊ฒ์ํ์ ๊ทธ๋ฃน์ฐ๊ฒฐ if (!empty($board_data['site_link'])) { $site .= $board_data['site_link']; } } //// ๋ฐ์ดํฐ ๋ก๋ $tmp_data = sql("q:SELECT * FROM {$mini['name']['member']} WHERE uid='{$data['uid']}', mode:array"); //// ์์ด๋ ํ์ธ if (!is_array($tmp_data)) { __error('์ผ์นํ๋ ํ์์ด ์์ต๋๋ค'); } //// ๊ทธ๋ฃน ํ์ธ $check = 0; foreach ($tmp_data as $key => $val) { if (inStr($val['site'], $site) || count(array_intersect(getStr($site), getStr($val['site_link']))) || inStr('god', $val['admin']) || inStr('admin', $val['admin'])) { $check = 1; $data_ex = $val; } } if (!$check) { __error('์ผ์นํ๋ ํ์์ด ์์ต๋๋ค'); } //// ์ปจ๋ฒํ ํ์ ํ์ธ if (preg_match("/^\\!/", $data_ex['pass'])) { if (!empty($mini['complete']['ajax'])) { __complete(array('mode' => 'ajax,reload.parent', 'script' => "window.open(\"{$mini['dir']}login.conv.php?no={$data_ex['no']}\", \"conv\", \"width=400, height=400, scrollbars=2\");")); } else { __complete(array('mode' => 'move', 'url' => "{$mini['dir']}login.conv.php?no={$data_ex['no']}")); } } //// ์คํจ ํ์ ํ์ธ if ($data_ex['lock_login'] >= $mini['set']['lock_login'] && $data_ex['no'] != 1) { __error("๋ก๊ทธ์ธ์ {$mini['set']['lock_login']}ํ ์ด์ ์คํจํ์ฌ ์์ด๋๊ฐ ์ ๊ฒผ์ต๋๋ค. ๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํ์ธ์"); } //// ๋น๋ฐ๋ฒํธ ํ์ธ if (!$param['is_passed'] && $data['pass_encode'] != md5("{$data_ex['pass']}|{$mini['ip']}|" . session_id())) { if ($data_ex['pass'] == 'reset!') { __error('๋น๋ฐ๋ฒํธ๊ฐ ์ด๊ธฐํ ๋์์ต๋๋ค. ์์ด๋/๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ๋ฅผ ํตํด ์ ๋น๋ฐ๋ฒํธ๋ก ์ค์ ํด ์ฃผ์ธ์'); } sql("UPDATE {$mini['name']['member']} SET lock_login = lock_login + 1 WHERE no={$data_ex['no']}"); addLog("\n\t\t\t\tmode: login_lock_login\n\t\t\t\ttarget_member: {$data_ex['no']}\n\t\t\t\tfield1: {$data_ex['lock_login']}\n\t\t\t"); __error("๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค (" . ($data_ex['lock_login'] + 1) . "ํ ์ค๋ฅ)"); } //// ์ํธํ // ์๋ ๋ก๊ทธ์ธ if ($data['autologin']) { $pass_after = ''; $key_login = md5($mini['date']); $autologin_after = md5("{$data_ex['pass']}|{$mini['ip']}|{$key_login}"); $interval = time() + 2592000; // 30 days after } else { $pass_after = md5("{$data_ex['pass']}|{$mini['ip']}"); $key_login = $autologin_after = ''; $interval = 0; } //// ๊ตฝ๊ธฐ // ์ธ์ if ($mini['set']['use_login_session']) { $_SESSION['m_no'] = $data_ex['no']; $_SESSION['m_pass'] = $pass_after; } else { setcookie("m_no", $data_ex['no'], $interval, '/'); setcookie("m_pass", $pass_after, $interval, '/'); } // ์๋๋ก๊ทธ์ธ if ($data['autologin']) { setcookie("m_no", $data_ex['no'], $interval, '/'); setcookie("m_autologin", $autologin_after, $interval, '/'); } else { setcookie("m_autologin", '', 0, '/'); } //// ๋ก๊ทธ์ธ ๊ธฐ๋ก ์ถ๊ฐ def($mini['set']['login_history_count'], 10); $data_ex['history_login'] .= "{$mini['ip']}|{$mini['date']}\n"; $tmp = explode("\n", $data_ex['history_login']); if (count($tmp) > $mini['set']['login_history_count']) { unset($tmp[0]); } $data_ex['history_login'] = is_array($tmp) ? implode("\n", $tmp) : ""; //// ๋ก๊ทธ์ธ ํฌ์ธํธ ์ค์ if (!empty($site_data['point_login'])) { if (!sql("SELECT COUNT(*) FROM {$mini['name']['log']} WHERE mode='point' and target_member={$data_ex['no']} and field3='๋ก๊ทธ์ธ' and date >= '" . date("Y/m/d 00:00:00", $mini['time']) . "'")) { setPoint("\n\t\t\t\t\ttarget: {$data_ex['no']}\n\t\t\t\t\tmsg: ๋ก๊ทธ์ธ\n\t\t\t\t\tpoint: {$site_data['point_login']}\n\t\t\t\t"); } } //// ๋ค์ค ์๋๋ก๊ทธ์ธ ์ค์ //+ ์ ์๋ฒ์ ผ์์ ์ง์ธ ๊ตฌ๋ฌธ์ if (!empty($data_ex['ip']) && strpos($data_ex['ip'], '[') === false) { $data_ex['ip'] = "[{$data_ex['ip']}]"; } if (!empty($data_ex['key_login']) && strpos($data_ex['key_login'], '[') === false) { $data_ex['key_login'] = "******"; } if (empty($key_login)) { $key_login = '******'; } // ์ ๋ ฅ $data_ex['ip'] .= "[{$mini['ip']}]"; $data_ex['key_login'] .= "[{$key_login}]"; // 3๊ฐ ํ์ $arr_ip = getStr($data_ex['ip']); if (count($arr_ip) > 5) { unset($arr_ip[0]); $data_ex['ip'] = "[" . implode("][", $arr_ip) . "]"; } $arr_key_login = getStr($data_ex['key_login']); if (count($arr_key_login) > 5) { unset($arr_key_login[0]); $data_ex['key_login'] = "******" . implode("][", $arr_key_login) . "]"; } //// DB์์ sql("UPDATE {$mini['name']['member']} SET ip='{$data_ex['ip']}', date_login='******'date']}', key_login='******'key_login']}', lock_login=0, count_login=count_login+1, history_login='******'history_login']}' WHERE no={$data_ex['no']}"); }
/** ์ต๊ทผ๊ฒ์๋ฌผ * @class io * @param -id: ๊ฒ์ํ์์ด๋ -table: ์์์ง์ ํ ์ด๋ธ -mode: ์ต๊ทผ๊ฒ์๋ฌผ๋ชจ๋ [!|issue|writer|relate|popup|memo] -order: ์์์ ๋ ฌ์ฟผ๋ฆฌ -where: ์์๊ฒ์์ฟผ๋ฆฌ -count: ์ถ๋ ฅ์ -cut_title: ์ ๋ชฉ๊ธธ์ด -cut_ment: ๋ด์ฉ๊ธธ์ด -skin: ๊ฒ์๋ฌผ ์คํจ -skin_not: ๊ฒ์๋ฌผ์ด ์์ ๋ ์คํจ -skin_first: ์ฒซ ๊ฒ์๋ฌผ ์คํจ -debug: debug๋ชจ๋ -is_key: ํคํ ์ด๋ธ ์ฌ์ฉ์ฌ๋ถ -type: ์ข ๋ฅ [post!|cmt|memo|member] * @return Array ์คํจ์ด ์์ ๊ฒฝ์ฐ์ ๋ฆฌํด ์๋จ */ function mhot($param) { global $mini; $param = param($param); def($param['cut_title'], 0); def($param['cut_ment'], 0); def($param['count'], 5); def($param['type'], 'post'); // ์ค์ ๊ธฐ๋ณธ๊ฐ def($mini['setting']['issue_interval'], 48); if (preg_match("/[^0-9]/", $mini['setting']['issue_interval'])) { $mini['setting']['issue_interval'] = 48; } if (preg_match("/[^0-9\\,]/", $param['count'])) { __error('์ถ๋ ฅ๊ฐ์์๋ ์ซ์์ ,๋ง ์ ๋ ฅ ๊ฐ๋ฅํฉ๋๋ค' . ' (' . __FILE__ . ' line ' . __LINE__ . ' in ' . __FUNCTION__ . ')'); } if ($param['count'] > 100) { __error('์ถ๋ ฅ๊ฐ์๋ 100๊ฐ๋ฅผ ์ด๊ณผํ ์ ์์ต๋๋ค' . ' (' . __FILE__ . ' line ' . __LINE__ . ' in ' . __FUNCTION__ . ')'); } $where = $order = $board_data = $table = ''; $data = $sel_board = array(); // ๋ณต์ ๊ฒ์ํ ์ง์ (keyTable ์ด ์ฌ์ฉ๋๋ค) if (!empty($param['id']) && (strpos($param['id'], '[') !== false || $param['id'] == '*')) { $is_multi = 1; // ๊ฒ์ํ ๋๋ ๋ฃ๊ธฐ if (strpos($param['id'], '[') !== false) { $sel_board = getStr($param['id']); } } // ํ ์ด๋ธ ์์์ง์ if (!empty($param['table'])) { $table = $param['table']; } // ํคํ ์ด๋ธ ์ง์ if (!empty($param['is_key'])) { $table = $mini['name']['search']; } // ์์ด๋๋ก ํ ์ด๋ธ ์ง์ if (!$table && !empty($param['id']) && $param['id'] != '*') { if (!empty($mini['board']) && !empty($mini['board']['id']) && $mini['board']['id'] == $param['id']) { $board_data =& $mini['board']; } else { $board_data = getBoard($param['id'], 1); } $table = $param['type'] == 'post' ? $board_data['table'] : $board_data['table_cmt']; } // ํคํ ์ด๋ธ์ธ๋ฐ ๊ธ, ๋๊ธ์ด ์๋ ๊ฒฝ์ฐ ์๋ฌ if (!empty($param['is_key']) && $param['type'] != 'post' && $param['type'] != 'cmt') { __error('๊ฒ์ํ ์ด๋ธ์ ์ฐธ์กฐํ ๋๋ ๊ธ, ๋๊ธ ํ์๋ง ์ฌ์ฉํ์ค ์ ์์ต๋๋ค' . ' (' . __FILE__ . ' line ' . __LINE__ . ' in ' . __FUNCTION__ . ')'); } // ํน๋ณ ๋ชจ๋ if (!empty($param['mode'])) { switch ($param['mode']) { case 'issue': $where .= " and (issue=1 or (date>=DATE_ADD('{$mini['date']}', INTERVAL -{$mini['setting']['issue_interval']} HOUR) and date<=DATE_ADD('{$mini['date']}', INTERVAL 1 DAY)))"; $order .= ",issue*999999 + hit + vote*10 desc"; break; case 'writer': if (empty($mini['setting']['writer_no'])) { return 0; } $where .= " and target_member={$mini['setting']['writer_no']}"; $order .= ",no desc"; break; case 'relate': if (empty($mini['setting']['relate'])) { return 0; } $where .= " and " . sqlSel(explode(",", $mini['setting']['relate'])); $order .= ",no desc"; break; case 'popup': $where .= " and popup=1"; $order .= ",no desc"; break; case 'memo': $table = $mini['name']['memo']; $param['count'] = 20; $param['type'] = 'memo'; if (!empty($mini['log'])) { $where .= " and target_member={$mini['member']['no']} and date_read=0 and del_target=0"; $order .= ",no"; } break; } } // ์ฌ๋ฌ ํ ์ด๋ธ ๊ฒ์์ ๊ฒ์ํ ์ ๋ณด ๋ก๋ ๋ฐ ์ฟผ๋ฆฌ ์ค์ if (!empty($is_multi)) { $q_admin = ''; if (!empty($param['id']) && !empty($sel_board)) { $q_admin .= 'WHERE ' . sqlSel($sel_board); // $where .= " and ".sqlSel($sel_board, 'id'); } $data_board = sql("\n\t\t\tq: SELECT * FROM {$mini['name']['admin']} {$q_admin}\n\t\t\tmode: array\n\t\t"); $board_name = $board_data_arr = array(); if (!empty($data_board)) { foreach ($data_board as $key => $val) { $board_name[$val['no']] = $val['name']; parseBoard($val); $board_data_arr[$val['no']] = $val; } unset($data_board); } } // ํค ํ ์ด๋ธ ๊ฒ์์ ์ข ๋ฅ์ ๋ฐ๋ผ ์ฟผ๋ฆฌ ์ค์ if (!empty($param['is_key'])) { $where .= $param['type'] == 'post' ? " and cmt_no=0" : " and cmt_no!=0"; } // ํ ์ด๋ธ๋ช ์ด ์ง์ ๋์ง ์์๋ค๋ฉด ์๋ฌ if (empty($param['id']) && empty($param['table']) && empty($table)) { __error('๊ฒ์ํ ์์ด๋๋ ํ ์ด๋ธ๋ช ์ ์ ๋ ฅํด์ฃผ์ธ์' . ' (' . __FILE__ . ' line ' . __LINE__ . ' in ' . __FUNCTION__ . ')'); } // ์์ ์ค์ ์ถ๊ฐ if (!empty($param['where'])) { if (!preg_match("/^ ?(and|or)/i", $param['where'])) { $param['where'] = " and ({$param['where']})"; } $where .= $param['where']; } if (!empty($param['order'])) { if (!preg_match("/^\\,/i", $param['order'])) { $param['order'] = ",{$param['order']}"; } $order .= $param['order']; } else { if (empty($order)) { $order = ",date desc"; } } // ์ชฝ์ง์ธ๋ฐ ๋ก๊ทธ์ธ์ด ์๋์ด ์๋ค๋ฉด ๋๊น if (!empty($param['mode']) && $param['mode'] == 'memo' && empty($mini['log'])) { return false; } else { // ์ฟผ๋ฆฌ๋ ๋ฆผ if ($where) { $where = "WHERE " . substr($where, 4); } if ($order) { $order = "ORDER BY " . substr($order, 1); } // ๋ณต์ ๊ฒ์ํ์ผ ๊ฒฝ์ฐ if (!empty($is_multi)) { // ์ ์ฒด ๊ฒ์ํ์ผ ๋ if (empty($sel_board) && $param['id'] == '*') { $sel_board = array_keys($board_data_arr); } if (!empty($sel_board)) { $tmp_data = array(); $tmp_data_order = array(); $order_name = $order_type = ''; $order_data = array(); $data = array(); // order ๋ถ์ if (count(explode(",", $order)) > 1) { __error('์ ๋ ฌ ๊ธฐ์ค์ ํ๊ฐ๋ง ๊ฐ๋ฅํฉ๋๋ค' . ' (' . __FILE__ . ' line ' . __LINE__ . ' in ' . __FUNCTION__ . ')'); } $tmp_order = explode(" ", str_replace("ORDER BY ", "", $order)); $order_name = $tmp_order[0]; $order_type = empty($tmp_order[1]) ? 'asc' : $tmp_order[1]; unset($tmp_order); foreach ($sel_board as $val) { // ํคํ ์ด๋ธ ์ฌ์ฉ์ if (!empty($param['is_key'])) { $tmp_where = !empty($where) ? $where . " and id={$val}" : "WHERE id={$val}"; $table = $mini['name']['search']; } else { $tmp_where = $where; $table = $param['type'] == 'post' ? $mini['name']['board'] . $val : $mini['name']['cmt'] . $val; } $tmp_data = array_merge($tmp_data, sql(array('q' => "SELECT * FROM {$table} {$tmp_where} " . (!empty($param['is_key']) ? "GROUP BY num" : "") . " {$order} LIMIT {$param['count']}", 'mode' => 'array', 'extra_name' => 'id', 'extra_value' => $val))); } // ์ ๋ ฌ ๊ธฐ์ค์ ๋ฐ๋ผ์ ๋๋ foreach ($tmp_data as $key => $val) { $order_data[$key] = $val[$order_name]; } // ์ ๋ ฌ if ($order_type == 'asc') { asort($order_data); } else { arsort($order_data); } // ์ ๋ ฌํ ์์๋๋ก data ์ ์ $i = 0; foreach ($order_data as $key => $val) { if ($i >= $param['count']) { break; } $data[$i] = $tmp_data[$key]; ++$i; } unset($tmp_data); unset($order_data); } } else { $data = sql(array('q' => "SELECT * FROM {$table} {$where} " . (!empty($param['is_key']) ? "GROUP BY num" : "") . " {$order} LIMIT {$param['count']}", 'mode' => 'array')); } if (!empty($data)) { $a = 0; $count_data = count($data); foreach ($data as $key => $val) { // ์ฌ๋ฌ ๊ฒ์ํ ์ฌ์ฉ์ ๊ฒ์ํ ์ ๋ณด ์ ๋ ฅ if (!empty($is_multi)) { if (!empty($board_name[$data[$key]['id']])) { $data[$key]['board_name'] = $board_name[$data[$key]['id']]; } if (!empty($data[$key]['id'])) { $data[$key]['url_board'] = "{$mini['dir']}mini.php?id={$data[$key]['id']}"; } if (!empty($board_data_arr)) { $mini['board_data'] = $board_data_arr[$data[$key]['id']]; } } else { $mini['board_data'] = $board_data; } if (!empty($param['is_key'])) { // ํค ํ ์ด๋ธ ์ฌ์ฉ ์ ์ง์ง ์๋ฃ ๋ก๋ $val2 = sql("SELECT * FROM " . (!empty($data[$key]['cmt_no']) ? $mini['name']['cmt'] : $mini['name']['board']) . "{$data[$key]['id']} WHERE " . (!empty($data[$key]['cmt_no']) ? "no={$data[$key]['cmt_no']}" : "num={$data[$key]['num']}")); $data[$key] = array_merge($data[$key], $val2); } // title ์ ํฌํจ๋ ๋ณ์๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋จผ์ ์๋ผ์ค๋ค if (!empty($param['cut_title']) && !empty($data[$key]['title'])) { $data[$key]['title'] = strCut($data[$key]['title'], $param['cut_title']); } // ๊ฐ๊ณต ํจ์ ์คํ $tmp_func = "parse" . ($param['type'] == 'cmt' ? 'comment' : $param['type']); if ($count_data == 1) { $tmp_func($data[$key], 'view'); } else { $tmp_func($data[$key], ''); } // ๋ด์ฉ ์๋ฅด๊ธฐ if (!empty($param['cut_ment']) && !empty($data[$key]['ment'])) { $data[$key]['ment'] = strCut($data[$key]['ment'], $param['cut_ment']); $data[$key]['ment_notag'] = strCut($data[$key]['ment_notag'], $param['cut_ment']); } // if (!empty($param['debug'])) { // echo nl2br(print_r($data[$key], 1)); // exit; // } if (!empty($param['skin'])) { $skin = ''; if ($a == 0 && !empty($param['skin_first'])) { $skin = $param['skin_first']; } else { $skin = $param['skin']; } // ๋ ผ๋ฆฌ๋ฌธ $preg_left = $preg_right = array(); $preg_left[] = "/\\[:([a-z0-9_]+)\\.([a-z0-9_]+)\\.([a-z0-9_]+):\\]/ie"; $preg_right[] = "\$data[{$key}]['\\1']['\\2']['\\3']"; $preg_left[] = "/\\[:([a-z0-9_]+)\\.([a-z0-9_]+):\\]/ie"; $preg_right[] = "\$data[{$key}]['\\1']['\\2']"; $preg_left[] = "/\\[:([a-z0-9_]+):\\]/ie"; $preg_right[] = "\$data[{$key}]['\\1']"; $skin = preg_replace($preg_left, $preg_right, $skin); echo $skin; } $a++; } if (empty($param['skin'])) { if (count($data) == 1 && $param['count'] == 1) { return current($data); } else { return $data; } } } else { if (!empty($param['skin_not'])) { echo $param['skin_not']; } } } }
} if (!defined('DC_UPDATE_VERSION')) { define('DC_UPDATE_VERSION', 'stable'); } if (!defined('DC_ALLOW_MULTI_MODULES')) { define('DC_ALLOW_MULTI_MODULES', false); } l10n::init(); try { $core = new dcCore(DC_DBDRIVER, DC_DBHOST, DC_DBNAME, DC_DBUSER, DC_DBPASSWORD, DC_DBPREFIX, DC_DBPERSIST); } catch (Exception $e) { init_prepend_l10n(); if (!defined('DC_CONTEXT_ADMIN')) { __error(__('Site temporarily unavailable'), __('<p>We apologize for this temporary unavailability.<br />' . 'Thank you for your understanding.</p>'), 20); } else { __error(__('Unable to connect to database'), $e->getCode() == 0 ? sprintf(__('<p>This either means that the username and password information in ' . 'your <strong>config.php</strong> file is incorrect or we can\'t contact ' . 'the database server at "<em>%s</em>". This could mean your ' . 'host\'s database server is down.</p> ' . '<ul><li>Are you sure you have the correct username and password?</li>' . '<li>Are you sure that you have typed the correct hostname?</li>' . '<li>Are you sure that the database server is running?</li></ul>' . '<p>If you\'re unsure what these terms mean you should probably contact ' . 'your host. If you still need help you can always visit the ' . '<a href="http://forum.dotclear.net/">Dotclear Support Forums</a>.</p>') . (DC_DEBUG ? __('The following error was encountered while trying to read the database:') . '</p><ul><li>' . $e->getMessage() . '</li></ul>' : ''), DC_DBHOST != '' ? DC_DBHOST : 'localhost') : '', 20); } } # If we have some __top_behaviors, we load them if (isset($__top_behaviors) && is_array($__top_behaviors)) { foreach ($__top_behaviors as $b) { $core->addBehavior($b[0], $b[1]); } unset($b); } http::trimRequest(); try { http::unsetGlobals(); } catch (Exception $e) { header('Content-Type: text/plain'); echo $e->getMessage();