주제: Windows Live Writer에서 Category 가져오는 것 에러 해결
안녕하세요.
TC 1.8로 올라오면서 Windows Live Writer에서 Category를 가져오는데 에러가 나더군요.
개선되기를 기다렸으나 혹시나 하는 생각에 제가 해결하였습니다.
개발 참여를 어떻게 하는지 명확히 잘 모르기에 여기에 해당 코드를 남깁니다.
티켓 생성 및 문제 해결에 도움이 되기를 바랍니다.
TC/library/model/blog.api.php
function metaWeblog_getCategories()
{
global $hostURL, $blogURL;
$params = func_get_args();
$result = api_login( $params[1], $params[2] );
if( $result )
{
return $result;
}
# 카테고리를 가져온다. 같은 폴더의 blog.category.php에 정의
$rows = getCategories($params[0], 'raw');
# 기존 코드와 동일
$cat = array();
# 역시 기존 코드와 비슷하다. 하지만 $rows로 날아오는 것이 해당 blogid에 맞는 카테고리이기에 그것을 하나씩 foreach로 확인하면 된다.
foreach ($rows as $category)
{
# 이건 명확하게 잘 모르겠으나 class Category에 살펴보니 label에 이런 함수를 동원한다. 따라서 추가.
$label = POD::escapeString(UTF8::lessenAsEncoding($category['name'], 255));
# 기존 코드와 비슷. $category->label => $label, $category->id => $category['id']로 바꾸기만 했다.
array_push( $cat, array(
'htmlUrl' => "$hostURL$blogURL/category/" . $label,
//'rssUrl' => "",
'categoryName' => $label,
'description' => $label,
'title' => $label,
'categoryid' => $category['id'],
'isPrimary' => true
) );
}
# 기존 코드와 동일.
return $cat;
/*
기존 코드.
$category = new Category();
$category->open(false);
$cat = array();
while($category->id)
{
array_push( $cat, array(
'htmlUrl' => "$hostURL$blogURL/category/" . $category->label,
//'rssUrl' => "",
'categoryName' => $category->label,
'description' => $category->label,
'title' => $category->label,
'categoryid' => $category->id,
'isPrimary' => true
) );
if( !$category->shift() )
{
break;
}
}
$category->close();
return $cat;
*/
}
function mt_getCategoryList()
{
$params = func_get_args();
$result = api_login( $params[1], $params[2] );
if( $result )
{
return $result;
}
# 카테고리를 가져온다. 같은 폴더의 blog.category.php에 정의
$rows = getCategories($params[0], 'raw');
# 기존 코드와 동일
$cat = array();
# 역시 기존 코드와 비슷하다. 하지만 $rows로 날아오는 것이 해당 blogid에 맞는 카테고리이기에 그것을 하나씩 foreach로 확인하면 된다.
foreach ($rows as $category)
{
# 이건 명확하게 잘 모르겠으나 class Category에 살펴보니 label에 이런 함수를 동원한다. 따라서 추가.
$label = POD::escapeString(UTF8::lessenAsEncoding($category['name'], 255));
# 기존 코드와 비슷. $category->label => $label, $category->id => $category['id']로 바꾸기만 했다.
array_push( $cat, array(
'categoryName' => $label,
'categoryId' => $category['id'],
'isPrimary' => true ) );
}
# 기존 코드와 동일.
return $cat;
/*
$category = new Category();
$category->open(false);
$cat = array();
while(1)
{
array_push( $cat, array(
'categoryName' => $category->label,
'categoryId' => $category->id,
'isPrimary' => true ) );
if( !$category->shift() )
{
break;
}
}
$category->close();
return $cat;
*/
}NoSyu (2010-02-07 02:11:33)에 의해 마지막으로 수정
- Le Comte de Monte-Cristo