Changeset 5610

Show
Ignore:
Timestamp:
03/20/08 22:33:32 (10 months ago)
Author:
inureyes
Message:

#891

  • 방명록 리스팅 추가
  • 관련 메세지 추가
  • 댓글/방명록/댓글알리미/받은 트랙백/보낸 트랙백 인터페이스 통합
  • 새 컴 기념
Location:
trunk
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • trunk/doc/changes_ko

    r5566 r5610  
    11* 이 문서는 변경사항을 모두 포함하고 있지 않을 수 있습니다. 자세한 변경사항 열람을 위해서는 텍스트큐브 개발 사이트 (http://dev.textcube.org) 의 해당 버전의 로드맵과 티켓들을 확인해 주시기 바랍니다. 
    22* 버그 로그는 일반적으로 이전 버전에서 발생했으나 해결된 부분을 포함하며, 이번 버전을 만드는 과정에서 발생하는 버그는 기록하지 않습니다. 
     3 
     4== v1.6.2 개발 관련 노트 == 
     5=== 추가된 점 === 
     6 * 관리자  : 보낸 트랙백 목록 지원 (#874) 
     7 * 관리자  : 관리자 화면의 글-댓글 목록에서 댓글에 대한 댓글쓰기 지원 (#873) 
     8 
     9=== 변경된 점 === 
     10 * 블로그  : 태그 구름에서의 태그 출력도 숫자 출력 모드에서는 숫자로 링크가 만들어짐 (#863) 
     11 * 블로그  : 댓글 알리미를 통하여 전달되는 댓글의 경우 255자 글자 제한 해제. (#887) 
     12 * 관리자  : 카테고리 선택후 출력되는 목록에서 글을 선택하여 수정한 후 저장한 경우에도 원래 보던 목록으로 이동함 (#885) 
     13 
     14=== 버그 수정 === 
     15 * 에디터  : 글 주소 저장시 임시로 만들어지는 퍼머링크인 TCDraftPost가 가끔 갱신되지 않는 문제 수정 (#872) 
     16 * 블로그  : OpenID 위임 설정시 스킨에 반영되지 않는 문제 수정 (#875) 
     17 * 블로그  : 카테고리의 비공개/공개 속성을 전환 후 RSS가 갱신되지 않는 문제 수정 (#884) 
     18 * 블로그  : OpenID 로그인 시 서버 설정에 따라 하얀 화면이 나오는 문제 수정 (#886) 
     19 * 관리자  : refererKeyword 플러그인을 통한 스팸이 가능한 문제 수정 (#889) 
     20 
     21 
    322== v1.6.1 개발 관련 노트 == 
    4  
    523=== 추가된 점 === 
    624 * 블로그  : 댓글에 댓글을 다는 경우 뿐 아니라 일반적인 댓글을 다는 경우에도 중복 댓글이 달리지 않도록 함 (#798) 
  • trunk/interface/owner/entry/comment/index.php

    r5588 r5610  
    1212if (isset($_GET['search'])) $_POST['search'] = $_GET['search']; 
    1313if (isset($_GET['withSearch'])) $_POST['withSearch'] = $_GET['withSearch']; 
     14if (isset($_GET['status'])) $_POST['status'] = $_GET['status']; 
    1415 
    1516$IV = array( 
     
    2526        'perPage' => array('int', 1, 'mandatory' => false), 
    2627        'search' => array('string', 'default' => ''), 
    27         'withSearch' => array(array('on'), 'mandatory' => false) 
     28        'withSearch' => array(array('on'), 'mandatory' => false), 
     29        'status' => array('string', 'mandatory' => false) 
    2830    ) 
    2931);   
     
    4446    setBlogSetting('rowsPerPage', $_POST['perPage']); 
    4547} 
    46 list($comments, $paging) = getCommentsWithPagingForOwner($blogid, $categoryId, $name, $ip, $search, $suri['page'], $perPage); 
     48 
     49$tabsClass = array(); 
     50if (isset($_POST['status'])) { 
     51    if($_POST['status']=='comment') { 
     52        $tabsClass['comment'] = true; 
     53        $visibilityText = _t('댓글'); 
     54    } else if($_POST['status']=='guestbook') { 
     55        $tabsClass['guestbook'] = true; 
     56        $visibilityText = _t('방명록'); 
     57    } 
     58} else { 
     59    $tabsClass['comment'] = true; 
     60    $visibilityText = _t('댓글'); 
     61} 
     62if($tabsClass['comment'] == true) { 
     63    list($comments, $paging) = getCommentsWithPagingForOwner($blogid, $categoryId, $name, $ip, $search, $suri['page'], $perPage); 
     64} else { 
     65    list($comments, $paging) = getGuestbookWithPagingForOwner($blogid, $name, $ip, $search, $suri['page'], $perPage); 
     66} 
    4767require ROOT . '/lib/piece/owner/header.php'; 
    4868require ROOT . '/lib/piece/owner/contentMenu.php'; 
     
    162182                        <div id="part-post-comment" class="part"> 
    163183                            <h2 class="caption"> 
    164                                 <span class="main-text"><?php echo _t('등록된 댓글 목록입니다');?></span> 
     184                                <span class="main-text"><?php echo (isset($tabsClass['guestbook']) ? _t('등록된 방명록 목록입니다') : _t('등록된 댓글 목록입니다'));?></span> 
    165185<?php 
    166186if (strlen($name) > 0 || strlen($ip) > 0) { 
     
    179199?> 
    180200                            </h2> 
    181                              
     201                            <ul id="communication-tabs-box" class="tabs-box"> 
     202                                <!-- TODO : $tab['postfix'] 버그 --> 
     203                                <li<?php echo isset($tabsClass['comment']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/comment?page=1<?php echo $tab['postfix'];?>&amp;status=comment"><?php echo _t('댓글');?></a></li> 
     204                                <li<?php echo isset($tabsClass['guestbook']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/comment?page=1<?php echo $tab['postfix'];?>&amp;status=guestbook"><?php echo _t('방명록');?></a></li> 
     205                                <li<?php echo isset($tabsClass['notify']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/notify"><?php echo _t('댓글 알리미');?></a></li> 
     206                                <li<?php echo isset($tabsClass['received']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/trackback?page=1<?php echo $tab['postfix'];?>&amp;status=received"><?php echo _t('걸린 글');?></a></li> 
     207                                <li<?php echo isset($tabsClass['sent']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/trackback?page=1<?php echo $tab['postfix'];?>&amp;status=sent"><?php echo _t('건 글');?></a></li> 
     208                            </ul> 
     209<?php 
     210    if(isset($tabsClass['comment'])) { 
     211?> 
    182212                            <form id="category-form" class="category-box" method="post" action="<?php echo $blogURL;?>/owner/entry/comment"> 
    183213                                <div class="section"> 
     
    201231                                </div> 
    202232                            </form> 
    203                              
     233<?php 
     234    } 
     235?> 
    204236                            <form id="list-form" method="post" action="<?php echo $blogURL;?>/owner/entry/comment"> 
    205237<?php 
     
    272304    } 
    273305?> 
    274                                                 <a href="?name=<?php echo urlencode(escapeJSInAttribute($comment['name']));?>" title="<?php echo _t('이 이름으로 등록된 댓글 목록을 보여줍니다.');?>"><?php echo htmlspecialchars($comment['name']);?></a> 
     306                                                <a href="?name=<?php echo urlencode(escapeJSInAttribute($comment['name'])).'&status='.(isset($tabsClass['guestbook']) ? 'guestbook' : 'comment');?>" title="<?php echo (isset($tabsClass['guestbook']) ? _t('이 이름으로 등록된 방명록을 보여줍니다.') : _t('이 이름으로 등록된 댓글 목록을 보여줍니다.'));?>"><?php echo htmlspecialchars($comment['name']);?></a> 
    275307                                            </td> 
    276308                                            <td class="content"> 
    277309<?php 
    278     echo '<a class="entryURL" href="'.$blogURL.'/'.$comment['entry'].'#comment'.$comment['id'].'" title="'._t('댓글이 작성된 포스트로 직접 이동합니다.').'">'; 
     310    if(isset($tabsClass['guestbook'])) { 
     311        echo '<a class="entryURL" href="'.$blogURL.'/guestbook/'.$comment['id'].'#guestbook'.$comment['id'].'" title="'._t('방명록으로 직접 이동합니다.').'">'; 
     312    } else { 
     313        echo '<a class="entryURL" href="'.$blogURL.'/'.$comment['entry'].'#comment'.$comment['id'].'" title="'._t('댓글이 작성된 포스트로 직접 이동합니다.').'">'; 
     314    } 
    279315    echo '<span class="entry-title">'. htmlspecialchars($comment['title']) .'</span>'; 
    280316     
     
    283319    } 
    284320     
    285     echo empty($comment['parent']) ? '' : '<span class="explain">' . _f('%1 님의 댓글에 대한 댓글',$comment['parentName']) . '</span>'; 
     321    echo empty($comment['parent']) ? '' : '<span class="explain">' . (isset($tabsClass['guestbook']) ? _f('%1 님의 방명록에 대한 댓글',$comment['parentName']) : _f('%1 님의 댓글에 대한 댓글',$comment['parentName'])) . '</span>'; 
    286322    echo "</a>"; 
    287323?> 
     
    289325                                                <?php echo htmlspecialchars($comment['comment']);?> 
    290326<?php 
    291     if(empty($comment['parent'])) echo '<span class="reply"><a href="#" onclick="commentComment('.$comment['id'].');return false;">'._t('이 댓글에 댓글을 씁니다.').'</a></span>'; 
     327    if(empty($comment['parent'])) echo '<span class="reply"><a href="#" onclick="commentComment('.$comment['id'].');return false;">'.(isset($tabsClass['guestbook']) ? _t('이 방명록에 답글을 씁니다') : _t('이 댓글에 댓글을 씁니다.')).'</a></span>'; 
    292328?> 
    293329                                            </td> 
  • trunk/interface/owner/entry/notify/index.php

    r5285 r5610  
    3737    setBlogSetting('rowsPerPage', $_POST['perPage']); 
    3838} 
     39 
     40$tabsClass = array(); 
     41$tabsClass['notify'] = true; 
     42$visibilityText = _t('댓글 알리미'); 
     43 
    3944list($comments, $paging) = getCommentsNotifiedWithPagingForOwner($blogid, '', $name, '', $search, $suri['page'], $perPage); 
    4045require ROOT . '/lib/piece/owner/header.php'; 
     
    153158?> 
    154159                            </h2> 
    155                              
     160                            <ul id="communication-tabs-box" class="tabs-box"> 
     161                                <!-- TODO : $tab['postfix'] 버그 --> 
     162                                <li<?php echo isset($tabsClass['comment']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/comment?page=1<?php echo $tab['postfix'];?>&amp;status=comment"><?php echo _t('댓글');?></a></li> 
     163                                <li<?php echo isset($tabsClass['guestbook']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/comment?page=1<?php echo $tab['postfix'];?>&amp;status=guestbook"><?php echo _t('방명록');?></a></li> 
     164                                <li<?php echo isset($tabsClass['notify']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/notify"><?php echo _t('댓글 알리미');?></a></li> 
     165                                <li<?php echo isset($tabsClass['received']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/trackback?page=1<?php echo $tab['postfix'];?>&amp;status=received"><?php echo _t('걸린 글');?></a></li> 
     166                                <li<?php echo isset($tabsClass['sent']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/trackback?page=1<?php echo $tab['postfix'];?>&amp;status=sent"><?php echo _t('건 글');?></a></li> 
     167                            </ul> 
     168 
     169 
    156170                            <div class="main-explain-box"> 
    157171                                <p class="explain"><?php echo _t('다른 사람의 블로그에 단 댓글에 대한 댓글이 등록되면 알려줍니다. 알리미가 동작하기 위해서는 댓글 작성시 홈페이지 기입란에 자신의 블로그 주소를 입력하셔야 합니다.');?></p> 
  • trunk/interface/owner/entry/trackback/index.php

    r5587 r5610  
    5757    $visibilityText = _t('걸린 글'); 
    5858} 
     59 
    5960if($tabsClass['received'] == true) { 
    6061    list($trackbacks, $paging) = getTrackbacksWithPagingForOwner($blogid, $categoryId, $site, $ip, $search, $suri['page'], $perPage); 
     
    217218                        <div id="part-post-trackback" class="part"> 
    218219                            <h2 class="caption"> 
    219                                 <span class="main-text"><?php echo _t('걸린글 목록입니다');?></span> 
     220                                <span class="main-text"><?php echo (isset($tabsClass['received']) ? _t('걸린글 목록입니다') : _t('건 글 목록입니다'));?></span> 
    220221<?php 
    221222if (strlen($site) > 0 || strlen($ip) > 0) { 
     
    234235?> 
    235236                            </h2> 
    236                             <ul id="entry-tabs-box" class="tabs-box"> 
     237                            <ul id="communication-tabs-box" class="tabs-box"> 
    237238                                <!-- TODO : $tab['postfix'] 버그 --> 
     239                                <li<?php echo isset($tabsClass['comment']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/comment?page=1<?php echo $tab['postfix'];?>&amp;status=comment"><?php echo _t('댓글');?></a></li> 
     240                                <li<?php echo isset($tabsClass['guestbook']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/comment?page=1<?php echo $tab['postfix'];?>&amp;status=guestbook"><?php echo _t('방명록');?></a></li> 
     241                                <li<?php echo isset($tabsClass['notify']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/notify"><?php echo _t('댓글 알리미');?></a></li> 
    238242                                <li<?php echo isset($tabsClass['received']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/trackback?page=1<?php echo $tab['postfix'];?>&amp;status=received"><?php echo _t('걸린 글');?></a></li> 
    239243                                <li<?php echo isset($tabsClass['sent']) ? ' class="selected"' : NULL;?>><a href="<?php echo $blogURL;?>/owner/entry/trackback?page=1<?php echo $tab['postfix'];?>&amp;status=sent"><?php echo _t('건 글');?></a></li> 
  • trunk/language/ko.php

    r5566 r5610  
    251251//$__text['갱신'] = ''; 
    252252//$__text['거부'] = ''; 
     253$__text['건 글'] = '보낸 트랙백'; 
     254$__text['걸린 글'] = '받은 트랙백'; 
     255$__text['건 글 목록입니다'] = '보낸 트랙백 목록입니다'; 
    253256//$__text['걸린 글 데이터를 교정하고 있습니다.'] = ''; 
    254257//$__text['걸린 글 보기'] = ''; 
    255258//$__text['걸린 글이 없습니다'] = ''; 
    256 //$__text['걸린글 목록입니다'] = ''; 
     259$__text['걸린글 목록입니다'] = '받은 트랙백 목록입니다'; 
    257260//$__text['걸린글 테이블에 광고 및 스팸 분류를 위한 휴지통 필드를 추가합니다.'] = ''; 
    258261//$__text['걸린글 테이블의 미사용 필드를 삭제합니다.'] = ''; 
  • trunk/lib/model/blog.comment.php

    r5604 r5610  
    4949} 
    5050 
    51 function getCommentsWithPagingForOwner($blogid, $category, $name, $ip, $search, $page, $count) { 
     51function getCommentsWithPagingForOwner($blogid, $category, $name, $ip, $search, $page, $count, $isGuestbook = false) { 
    5252    global $database; 
    5353     
     
    6666    } else 
    6767        $sql .= ' AND e.category >= 0'; 
     68    if (!empty($name)) { 
     69        $sql .= ' AND c.name = \'' . POD::escapeString($name) . '\''; 
     70        $postfix .= '&name=' . rawurlencode($name); 
     71    } 
     72    if (!empty($ip)) { 
     73        $sql .= ' AND c.ip = \'' . POD::escapeString($ip) . '\''; 
     74        $postfix .= '&ip=' . rawurlencode($ip); 
     75    } 
     76    if (!empty($search)) { 
     77        $search = escapeSearchString($search); 
     78        $sql .= " AND (c.name LIKE '%$search%' OR c.homepage LIKE '%$search%' OR c.comment LIKE '%$search%')"; 
     79        $postfix .= '&search=' . rawurlencode($search); 
     80    } 
     81     
     82    $sql .= ' ORDER BY c.written DESC'; 
     83    list($comments, $paging) = fetchWithPaging($sql, $page, $count); 
     84    if (strlen($postfix) > 0) { 
     85        $postfix .= '&withSearch=on'; 
     86        $paging['postfix'] .= $postfix; 
     87    } 
     88 
     89    return array($comments, $paging); 
     90} 
     91 
     92function getGuestbookWithPagingForOwner($blogid, $name, $ip, $search, $page, $count) { 
     93    global $database; 
     94     
     95    $postfix = ''; 
     96     
     97    $sql = "SELECT c.*, c2.name parentName  
     98        FROM {$database['prefix']}Comments c  
     99        LEFT JOIN {$database['prefix']}Comments c2 ON c.parent = c2.id AND c.blogid = c2.blogid  
     100        WHERE c.blogid = $blogid AND c.entry = 0 AND c.isFiltered = 0"; 
    68101    if (!empty($name)) { 
    69102        $sql .= ' AND c.name = \'' . POD::escapeString($name) . '\''; 
  • trunk/lib/piece/owner/contentMenu.php

    r5493 r5610  
    2323                    array('menu'=>'post','title'=>_t('글쓰기'),'link'=>'/owner/entry/post'), 
    2424                    array('menu'=>'entry','title'=>_t('글 목록'),'link'=>'/owner/entry'), 
    25                     array('menu'=>'comment','title'=>_t('댓글'),'link'=>'/owner/entry/comment'), 
    26                     array('menu'=>'notify','title'=>_t('댓글 알리미'),'link'=>'/owner/entry/notify'), 
    27                     array('menu'=>'trackback','title'=>_t('걸린글'),'link'=>'/owner/entry/trackback'), 
     25                    array('menu'=>'comment','title'=>_t('소통 기록'),'link'=>'/owner/entry/comment'), 
    2826                    array('menu'=>'category','title'=>_t('분류 관리'),'link'=>'/owner/entry/category'), 
    2927                    array('menu'=>'trash','title'=>_t('휴지통'),'link'=>'/owner/entry/trash') 
     
    136134    else if (isset($_GET['category'])) $currentCategory = $_GET['category']; 
    137135    else $currentCategory = null; 
     136    if(in_array($blogMenu['contentMenu'],array('notify','trackback'))) 
     137        $blogMenu['contentMenu'] = 'comment'; 
     138 
    138139    foreach($blogContentMenuItem as $contentMenuItem) {  
    139140        $PostIdStr = null;