¿ÀŸ·Î ÀÎÇØ ÷ºÎ ÆÄÀÏÀÌ Á¦´ë·Î Ãâ·ÂµÇÁö ¾Ê´Â ¹®Á¦¸¦ ÇØ°áÇß½À´Ï´Ù.
±âÁ¸ º¯È¯±â·Î ¹®Á¦ ¾ø´Â ºÐµéÀº »ç¿ëÇÏÁö ¾ÊÀ¸¼Åµµ µÇ³ª, ¾Æ¸¶ ´ëºÎºÐÀÇ
ºÐµéÀÌ ¹®Á¦°¡ ÀÖÀ» °Ì´Ï´Ù. -_-;
2005³â 04¿ù 30ÀÏ (1.1)
[+] ¿ÜºÎ DB Áö¿ø.
=> ÅÂÅÍÅøÁîÀÇ DB°¡ ºí·Î±×¹Ò DB¿Í °°Àº ¼¹ö°¡ ¾Æ´Ñ °æ¿ì °¨¾È.
1.0 ¿¡¼ ¹®Á¦ ¾øÀÌ »ç¿ëÇÏ´ø À̵éÀº ³»·Á¹ÞÀ» ÇÊ¿ä ¾øÀ½.
2005³â 04¿ù 27ÀÏ (1.0)
[+] Á¤½Ä ¹èÆ÷
*/
function converter_tattertools_info () {
$init = array(
"converter_code" => "tattertools",
"converter_title" => "ÅÂÅÍÅøÁî º¯È¯±â",
"auther_name" => "Hannal",
"auther_url" => "http://www.hannal.net",
"version" => "1.2 (2005043002)",
);
return $init;
}
function converter_tattertools_fields() {
$fields = array(
"converter_prefix" => "ÅÂÅÍÅøÁîDB Å×À̺í Prefix",
"converter_install_path" => "ÅÂÅÍÅøÁî ¼³Ä¡°æ·Î (¿¹ : ../../tt)",
"tt_db_host" => "ÅÂÅÍÅøÁî DB À§Ä¡ (¿¹ : 111.111.112.155)
(ºí·Î±×¹Ò°ú °°Àº DatabaseÀÏ °æ¿ì °ø¹é)",
"tt_db_name" => "ÅÂÅÍÅøÁî DB À̸§ (¿¹ : HannalDB)
(ºí·Î±×¹Ò°ú °°Àº DatabaseÀÏ °æ¿ì °ø¹é)",
"tt_db_user" => "ÅÂÅÍÅøÁî DB ÀÌ¿ëÀÚ À̸§ (¿¹ : Hannal)
(ºí·Î±×¹Ò°ú °°Àº DatabaseÀÏ °æ¿ì °ø¹é)",
"tt_db_password" => "ÅÂÅÍÅøÁî DB ÀÌ¿ëÀÚ ¾ÏÈ£
(ºí·Î±×¹Ò°ú °°Àº DatabaseÀÏ °æ¿ì °ø¹é)",
);
return $fields;
}
// ÆÄÀϸí ã±â
function find_file_in_array(&$cval, &$file_info)
{
$tc = count($file_info);
for ( $i=0; $i<$tc; $i++ )
{
if ( $file_info[$i]['attachname'] == $cval )
return $i;
}
return FALSE;
}
// ÷ºÎ ÆÄÀÏ À̵¿
function move_attach_file($no, $Apath, $Bpath, &$tfc, &$ttdb)
{
global $blog_config;
$file_info = array();
$array_name = 0;
$result = $ttdb->getAll('select * from t3_'.$_REQUEST['converter_prefix'].'_files where pno='.$no);
foreach($result as $vv)
{
if ( copy("{$_REQUEST['converter_install_path']}/attach/$Apath$Bpath{$vv['attachname']}", "{$_REQUEST['converter_install_path']}/attach/$Apath$Bpath{$vv['filename']}") )
{
$file_info[$array_name] = converter_save_file($blog_config["blog_id"], "{$_REQUEST['converter_install_path']}/attach/$Apath$Bpath{$vv['filename']}");
$file_info[$array_name]['attachname'] = $vv['attachname'];
$file_info[$array_name]['imagesize']['width'] = $vv['width'];
$file_info[$array_name]['imagesize']['height'] = $vv['height'];
$file_info[$array_name]['filesize'] = $vv['filesize'];
$tfc++;
$array_name++;
unlink("{$_REQUEST['converter_install_path']}/attach/$Apath$Bpath{$vv['filename']}");
}
}
return $file_info;
}
function converter_tattertools_convert () {
global $db, $blog_config, $config_ini;
$tfc = 0;
$category = array();
if ( (!isset($_REQUEST['tt_db_host']) || empty($_REQUEST['tt_db_host'])) ||
(!isset($_REQUEST['tt_db_name']) || empty($_REQUEST['tt_db_name'])) ||
(!isset($_REQUEST['tt_db_user']) || empty($_REQUEST['tt_db_user'])) ||
(!isset($_REQUEST['tt_db_password']) || empty($_REQUEST['tt_db_password'])) )
{
if (!isset($db)) $ttdb = connectDB($config_ini["Database"]);
else $ttdb =& $db;
}
else
{
$ttdb_config['server'] =& $_REQUEST['tt_db_host'];
$ttdb_config['database'] =& $_REQUEST['tt_db_name'];
$ttdb_config['user'] =& $_REQUEST['tt_db_user'];
$ttdb_config['password'] =& $_REQUEST['tt_db_password'];
$ttdb = connectDB($ttdb_config);
}
//----------
// Ä«Å×°í¸® ÀúÀå
$result_ct1 = $ttdb->getAll('select * from t3_'.$_REQUEST['converter_prefix'].'_ct1 order by sortno asc');
$result_ct2 = $ttdb->getAll('select * from t3_'.$_REQUEST['converter_prefix'].'_ct2 order by sortno asc');
foreach ( $result_ct1 as $ct1 )
{
$no = $ct1['no'];
$category_id = converter_create_category($blog_config["blog_id"], $ct1['label'], 0);
$category[$no]['title'] = $ct1['label'];
$category[$no]['bm_id'] = $category_id;
}
foreach ( $result_ct2 as $ct2 )
{
$no = $ct2['no'];
$pno = $ct2['pno'];
$category_id = converter_create_category($blog_config["blog_id"], $ct2['label'], $category[$pno]['bm_id']);
$category[$pno][$no]['title'] = $ct2['label'];
$category[$pno][$no]['bm_id'] = $category_id;
}
unset($result_ct1, $result_ct2);
// ±Û ÀúÀå
$result = $ttdb->getAll('select * from t3_'.$_REQUEST['converter_prefix'].' order by regdate desc');
foreach($result as $contents)
{
$file_info = move_attach_file($contents['no'], $contents['image_file_path1'], $contents['image_file_path2'], $tfc, $ttdb);
$contents['body'] = set_moreless(nl2brc(autolink(set_body(attach_image($contents['body'], $file_info, $ttdb), $contents['is_sync']))), $contents['no']);
if ( $contents['category2'] > 1 )
$ct_id = $category[$contents['category1']][$contents['category2']]['bm_id'];
else
$ct_id = $category[$contents['category1']]['bm_id'];
// Æ÷½ºÆ® ÀúÀå
$article_id = converter_save_article(array(
"blog_id" => $blog_config["blog_id"],
"category_id" => $ct_id,
"account_id" => ACCOUNT_ID,
"subject" => addslashes($contents['title']),
"contents" => addslashes($contents['body']),
"is_html" => 1,
"write_timestamp" => $contents['regdate'],
"modify_timestamp" => $contents['regdate'],
"auto_image" => 0,
"remote_addr" => $_SERVER["REMOTE_ADDR"],
"is_publish" => $contents['is_public'],
"use_comment" => 1,
"use_trackback" => 1,
"xml_publish" => 1
));
// ´ñ±Û ÀúÀå
$result = $ttdb->getAll('select * from t3_'.$_REQUEST['converter_prefix'].'_reply where pno='.$contents['no'].' order by regdate asc');
foreach ( $result as $cmt )
{
$comment_data = array(
"article_id" => $article_id,
"account_id" => '',
"name" => addslashes($cmt['name']),
"password" => $cmt['password'],
"email" => '',
"homepage" => addslashes($cmt['homepage']),
"comment" => addslashes($cmt['body']),
"write_timestamp" => $cmt['regdate'],
"remote_addr" => $cmt['ip'],
);
converter_save_comment($comment_data);
}
// ¿«ÀÎ±Û ÀúÀå
$result = $ttdb->getAll('select * from t3_'.$_REQUEST['converter_prefix'].'_trackback where pno='.$contents['no'].' order by regdate asc');
foreach ( $result as $tb )
{
$trackback_data = array(
"article_id" => $article_id,
"title" => addslashes($tb['title']),
"url" => addslashes($tb['url']),
"excerpt" => addslashes($tb['body']),
"blog_name" => addslashes($tb['site']),
"write_timestamp" => $tb['regdate'],
"remote_addr" => $tb['ip'],
);
converter_save_trackback($trackback_data);
}
}
echo "°Ô½Ã¹°, ´ñ±Û, ¿«ÀαÛ, °¥·¡ ¸ðµÎ º¯È¯ÇÏ¿´½À´Ï´Ù.
";
}
/* ¾Æ·¡´Â ÅÂÅÍÅøÁîÀÇ ÇÔ¼ö¸¦ °¡Á®¿Í ¼öÁ¤ÇÑ °Í */
function br2null($str) {
return str_replace('
', '', $str);
}
function set_moreless($str, $pno){
unset($n1, $n2, $cval);
while ($n1 = strpos($str, "[CODE]")) {
$n2 = strpos($str, "[/CODE]");
if (!$n2 || $n1 > $n2) break;
$cval = substr($str, $n1+6, $n2-$n1-6);
ob_start();
highlight_string(br2null($cval));
$ret = ob_get_contents();
ob_end_clean();
$str = substr($str, 0, $n1)."
".$ret."
".substr($str, $n2+7);
}
$count = 0;
unset($n1, $n2, $cval);
while ($n1 = strpos($str, "[#M_")) {
$n2 = strpos($str, "_M#]");
if (!$n2 || $n1 > $n2) break;
$cval = substr($str, $n1+4, $n2-$n1-4);
$more = substr($cval, 0, strpos($cval,"|"));
$cval = substr($cval, strpos($cval,"|")+1);
$less = substr($cval, 0, strpos($cval,"|"));
$cval = substr($cval, strpos($cval,"|")+1);
$count++;
$more_id = "div".$pno.$count."a";
$less_id = "div".$pno.$count."b";
$str = substr($str, 0, $n1)."".substr($str, $n2+4);
}
$str = str_replace(" ", " ", $str);
$str = str_replace("\t", " ", $str);
return $str;
}
function set_body($str) {
return str_replace(""","\"", str_replace("'","'",$str));
}
function get_timestamp2() {
list($usec) = explode(" ",microtime());
return date("ymdHis",time()).substr($usec,2, 6);
}
function autolink($str) {
$pattern = "/([^\/\"\'\=\>])(mms|http|HTTP|ftp|FTP|telnet|TELNET)\:\/\/(.[^ \r\n\<\"\'\)]+)/";
$str = preg_replace($pattern, "\\1\\2://\\3", $str);
return $str;
}
function nl2brc($str) {
unset($n1, $n2, $cval);
$hset = array();
while ($n1 = strpos($str, "[HTML]")) {
$n2 = strpos($str, "[/HTML]");
if (!$n2 || $n1 > $n2) break;
$stamp = get_timestamp2();
$cval = substr($str, $n1+6, $n2-$n1-6);
$str = str_replace("[HTML]".$cval."[/HTML]", $stamp, $str);
array_push($hset, array("word"=>$cval, "stamp"=>$stamp));
}
$str = nl2br($str);
foreach ($hset as $k => $key) $str = str_replace($key[stamp], $key[word], $str);
return $str;
}
function set_icon_extension($filename) {
$ext = strtolower(substr($filename, strrpos($filename, ".")+1));
if ($ext == "arj" || $ext == "dll" || $ext == "doc" || $ext == "exe" || $ext == "gz" || $ext == "htm" || $ext == "html"|| $ext == "hwp" || $ext == "lzh" || $ext == "mov" || $ext == "pdf" || $ext == "ppt" || $ext == "tar" || $ext == "ttf" || $ext == "txt" || $ext == "xls" || $ext == "z" || $ext == "zip") return $ext;
else return false;
}
function set_file($type, $file_info) {
global $blog_config;
switch($type) {
case "1":
return "
";
break;
case "2":
return "";
break;
case "3":
return "";
break;
case "4":
return "";
break;
case "0":
$icon = set_icon_extension($file_info['file_name_real']);
if (!$icon) $icon = "unknown";
return " | {$file_info['file_name_real']} ({$file_info['filesize']}) |
";
break;
}
}
function attach_image(&$body, &$file_info, &$ttdb)
{
$body = " ".$body;
$body = str_replace("[##_ATTACH_PATH_##]", URL_ROOT, $body);
while ($n1 = strpos($body, "[##_")) {
$n2 = strpos($body, "_##]");
if (!$n2 || $n1 > $n2) break;
unset($prefix, $buf, $postfix);
$cval = explode("|",substr($body, $n1+4, $n2-$n1-4));
switch (count($cval)) {
case "4" :
$arrnum = find_file_in_array($cval[1], $file_info);
$type = analyze_file($file_info[$arrnum]['filename_saved']);
if ($cval[0] == "1L") $prefix = "";
else if ($cval[0] == "1C") {
$prefix = "";
$postfix = "";
}
else if ($cval[0] == "1R") $prefix = "| ";
$buf = $prefix."".set_file($type, $file_info[$arrnum])." | | $cval[3] | ".$postfix;
break;
case "7" :
$arrnum = find_file_in_array($cval[1], $file_info);
$arrnum2 = find_file_in_array($cval[4], $file_info);
$type1 = analyze_file($file_info[$arrnum]['filename_saved']);
$type2 = analyze_file($file_info[$arrnum2]['filename_saved']);
$buf = "| ".set_file($type1, $file_info[$arrnum])." | | $cval[3] |
| | ".set_file($type2, $file_info[$arrnum2])." | | $cval[6] |
| ";
break;
case "10" :
$arrnum = find_file_in_array($cval[1], $file_info);
$arrnum2 = find_file_in_array($cval[4], $file_info);
$arrnum3 = find_file_in_array($cval[7], $file_info);
$type1 = analyze_file($file_info[$arrnum]['filename_saved']);
$type2 = analyze_file($file_info[$arrnum2]['filename_saved']);
$type3 = analyze_file($file_info[$arrnum3]['filename_saved']);
$buf = "| ".set_file($type1, $file_info[$arrnum])." | | $cval[3] |
| | ".set_file($typ2, $file_info[$arrnum2])." | | $cval[6] |
| | ".set_file($type3, $file_info[$arrnum3])." | | $cval[9] |
| ";
break;
}
$body = substr($body, 0, $n1)."$buf".substr($body, $n2+4);
}
return $body;
}
function analyze_file($obj) {
$ext = strtolower(substr($obj, strrpos($obj, ".")+1));
if ($ext == "bmp" || $ext == "jpg"|| $ext == "gif" || $ext == "png") return 1;
else if ($ext == "swf") return 2;
else if ($ext == "wmv" || $ext == "avi"|| $ext == "asf" || $ext == "mpg" || $ext == "mpeg") return 3;
else if ($ext == "wma" || $ext == "mp3"|| $ext == "mp2" || $ext == "mid" || $ext == "midi" || $ext == "wav") return 4;
else return 0;
}
?>
|
|