interface/common/blog/list.php 파일 수정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | foreach ( $list [ 'items' ] as $item ) { //== ACEPRO ================================================================ $visible = _t( 'visible etc' ); if (isset( $item [ 'visibility' ])) { if ( $item [ 'visibility' ]==0){ $visible = _t( 'visible private' ); } else if ( $item [ 'visibility' ]==1){ $visible = _t( 'visible protected' ); } else if ( $item [ 'visibility' ]==2){ $visible = _t( 'visible public' ); } else if ( $item [ 'visibility' ]==3){ $visible = _t( 'visible syndicated' ); } } //== ACEPRO ================================================================ $author = User::getName( $item [ 'userid' ]); $itemsView .= str_replace ( array ( '[##_list_rep_regdate_##]' , '[##_list_rep_name_##]' , '[##_list_rep_author_##]' , '[##_list_rep_link_##]' , '[##_list_rep_title_##]' , '[##_list_rep_rp_cnt_##]' , '[##_list_rep_visible_##]' ), array ( fireEvent( 'ViewListDate' , Timestamp::formatDate( $item [ 'published' ]), $item [ 'published' ]), fireEvent( 'ViewListName' , htmlspecialchars( $author )), fireEvent( 'ViewListName' , htmlspecialchars( $author )), ((! empty ( $skinSetting [ 'showListWithTotalEntries' ])) ? "#entry_" . $item [ 'id' ] : "$blogURL/" . ( $blog [ 'useSloganOnPost' ] ? 'entry/' . URL::encode( $item [ 'slogan' ], $service [ 'useEncodedURL' ]) : $item [ 'id' ])).(isset( $list [ 'category' ]) ? '?category=' . $list [ 'category' ] : '' ), fireEvent( 'ViewListTitle' , htmlspecialchars( $item [ 'title' ])), ( $item [ 'comments' ] > 0) ? "({$item['comments']})" : '' , $visible ), $skin ->listItem ); } |
library/model/blog.entry.php 수정
SQL에 문에 e.visibility 항목 추가
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function getEntryListWithPagingByCategory( $blogid , $category , $page , $count ) { global $database , $suri , $folderURL , $blog ; if ( $category === null) return array (); if (!doesHaveOwnership() && getCategoryVisibility( $blogid , $category ) < 2 && $category != 0) return array (); if ( $category > 0) { $categories = POD::queryColumn( "SELECT id FROM {$database['prefix']}Categories WHERE blogid = $blogid AND parent = $category" ); array_push ( $categories , $category ); if (!doesHaveOwnership()) $categories = array_diff ( $categories , getCategoryVisibilityList( $blogid , 'private' )); $cond = 'AND e.category IN (' . implode( ', ' , $categories ) . ')' ; $visibility = doesHaveOwnership() ? '' : 'AND e.visibility > 0' ; } else { $cond = 'AND e.category >= 0' ; $visibility = doesHaveOwnership() ? '' : 'AND e.visibility > 0' .getPrivateCategoryExclusionQuery( $blogid ); } $visibility .= (doesHaveOwnership() && !Acl::check( 'group.editors' )) ? ' AND (e.userid = ' .getUserId(). ' OR e.visibility > 0)' : '' ; $sql = "SELECT e.blogid,e.userid,e.id,e.title,e.comments,e.slogan,e.published,e.visibility FROM { $database [ 'prefix' ]}Entries e WHERE e.blogid = $blogid AND e.draft = 0 $visibility $cond ORDER BY e.published DESC"; return Paging::fetch( $sql , $page , $count , "$folderURL/" .((!getBlogSetting( 'useSloganOnCategory' ,true) && isset( $suri [ 'id' ])) ? $suri [ 'id' ] : $suri [ 'value' ])); } |
interface/common/blog/entries.php 수정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | if (doesHaveOwnership() && ( $entry [ 'userid' ] == getUserId() || Acl::check( 'group.editors' )===true)) { $managementView = $skin ->management; $useEncodedURL = false; if ( isset( $service [ 'useEncodedURL' ])) { $useEncodedURL = $service [ 'useEncodedURL' ]; } dress( 's_ad_m_link' , "$blogURL/owner/entry/edit/{$entry['id']}?returnURL=" . ( $useEncodedURL ? $permalink : str_replace ( '%2F' , '/' , rawurlencode( $permalink ))), $managementView ); dress( 's_ad_m_onclick' , "editEntry({$entry['id']},'" .( $useEncodedURL ? $permalink : str_replace ('%2F ', ' / ', rawurlencode($permalink)))."' ); return false;", $managementView ); dress( 's_ad_s1_label' , getEntryVisibilityName( $entry [ 'visibility' ]), $managementView ); if ( $entry [ 'visibility' ] < 2) { dress( 's_ad_s2_label' , _text( '공개로 변경합니다' ), $managementView ); dress( 's_ad_s2_onclick' , "changeVisibility({$entry['id']}, 2); return false;" , $managementView ); } else { dress( 's_ad_s2_label' , _text( '비공개로 변경합니다' ), $managementView ); dress( 's_ad_s2_onclick' , "changeVisibility({$entry['id']}, 0); return false;" , $managementView ); } dress( 's_ad_t_onclick' , "sendTrackback({$entry['id']}); return false;" , $managementView ); dress( 's_ad_d_onclick' , "deleteEntry({$entry['id']}); return false;" , $managementView ); //== ACEPRO =============================================== if ( $entry [ 'visibility' ]==0){ dress( 's_ad_m_visible' , "visible private" , $managementView ); } else if ( $entry [ 'visibility' ]==1){ dress( 's_ad_m_visible' , "visible protected" , $managementView ); } else if ( $entry [ 'visibility' ]==2){ dress( 's_ad_m_visible' , "visible public" , $managementView ); } else if ( $entry [ 'visibility' ]==3){ dress( 's_ad_m_visible' , "visible syndicated" , $managementView ); } //== ACEPRO =============================================== dress( 'ad_div' , $managementView , $entryView ); } $author = User::getName( $entry [ 'userid' ]); dress( 'article_rep_author' , fireEvent( 'ViewPostAuthor' , $author , $entry [ 'id' ]), $entryView ); dress( 'article_rep_author_link' , $blogURL . "/author/" .rawurlencode( $author ), $entryView ); dress( 'article_rep_id' , $entry [ 'id' ], $entryView ); dress( 'article_rep_link' , $permalink , $entryView ); dress( 'article_rep_rp_rssurl' , $defaultURL . '/rss/comment/' . $entry [ 'id' ], $entryView ); dress( 'article_rep_tb_rssurl' , $defaultURL . '/rss/trackback/' . $entry [ 'id' ], $entryView ); dress( 'article_rep_response_rssurl' , $defaultURL . '/rss/response/' . $entry [ 'id' ], $entryView ); dress( 'article_rep_rp_atomurl' , $defaultURL . '/atom/comment/' . $entry [ 'id' ], $entryView ); dress( 'article_rep_tb_atomurl' , $defaultURL . '/atom/trackback/' . $entry [ 'id' ], $entryView ); dress( 'article_rep_response_atomurl' , $defaultURL . '/atom/response/' . $entry [ 'id' ], $entryView ); dress( 'article_rep_category_body_id' ,getCategoryBodyIdById( $blogid , $entry [ 'category' ]) ? getCategoryBodyIdById( $blogid , $entry [ 'category' ]) : 'tt-body-category' , $entryView ); dress( 'article_rep_title' , htmlspecialchars(fireEvent( 'ViewPostTitle' , $entry [ 'title' ], $entry [ 'id' ])), $entryView ); // 사용자가 작성한 본문은 interface/common/blog/end.php의 removeAllTags() 다음에 처리하기 위한 조치. $contentContainer [ "article_{$entry['id']}" ] = getEntryContentView( $blogid , $entry [ 'id' ], $entry [ 'content' ], $entry [ 'contentformatter' ], getKeywordNames( $blogid )); dress( 'article_rep_desc' , setTempTag( "article_{$entry['id']}" ), $entryView ); dress( 'article_rep_category' , htmlspecialchars( empty ( $entry [ 'category' ]) ? _text( '분류없음' ) : $entry [ 'categoryLabel' ], $entry [ 'id' ]), $entryView ); dress( 'article_rep_category_link' , "$blogURL/category/" .( empty ( $entry [ 'category' ]) ? "" : ( $blog [ 'useSloganOnCategory' ] ? URL::encode( $entry [ 'categoryLabel' ], $service [ 'useEncodedURL' ]) : $entry [ 'category' ])), $entryView ); dress( 'article_rep_category_rssurl' , "$defaultURL/rss/category/" .( empty ( $entry [ 'category' ]) ? "" : ( $blog [ 'useSloganOnCategory' ] ? URL::encode( $entry [ 'categoryLabel' ], $service [ 'useEncodedURL' ]) : $entry [ 'category' ])), $entryView ); dress( 'article_rep_category_atomurl' , "$defaultURL/atom/category/" .( empty ( $entry [ 'category' ]) ? "" : ( $blog [ 'useSloganOnCategory' ] ? URL::encode( $entry [ 'categoryLabel' ], $service [ 'useEncodedURL' ]) : $entry [ 'category' ])), $entryView ); dress( 'article_rep_microformat_published' , Timestamp::getISO8601( $entry [ 'published' ]), $entryView ); dress( 'article_rep_microformat_updated' , Timestamp::getISO8601( $entry [ 'modified' ]), $entryView ); dress( 'article_rep_date' , fireEvent( 'ViewPostDate' , Timestamp::format5( $entry [ 'published' ]), $entry [ 'published' ]), $entryView ); dress( 'article_rep_date_modified' , fireEvent( 'ViewPostDate' , Timestamp::format5( $entry [ 'modified' ]), $entry [ 'modified' ]), $entryView ); dress( 'entry_archive_link' , "$blogURL/archive/" . Timestamp:: getDate ( $entry [ 'published' ]), $entryView ); //== ACEPRO =============================================== dress( 'article_rep_category_id' , empty ( $entry [ 'category' ]) ? "" : $entry [ 'category' ], $entryView ); //== ACEPRO =============================================== |
skin.html 파일 수정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < s_list > <!-- 글검색(Content) --> < div id = "searchList" > < h1 >'[##_list_conform_##]'에 관한 글 [##_list_count_##]개</ h1 > < ul > < s_list_rep > < li > < span class = "date [##_list_rep_visible_##]" >[##_list_rep_regdate_##]</ span > < a href = "[##_list_rep_link_##]" >[##_list_rep_title_##]</ a > < span class = "cnt" >[##_list_rep_rp_cnt_##]</ span > </ li > </ s_list_rep > </ ul > </ div > </ s_list > |
style.css 파일 수정
아이콘 이미지 파일은 skin/admin/whitedream/image에 있는 아이콘 파일을 이용.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #searchList .date. visible { display : inline- block ; width : 65px ; padding- left : 22px ; background- repeat : no-repeat ; } #searchList .date.public{ background-image : url ( "/resources/image/icon/icon_public.gif" ); } #searchList .date.private{ background-image : url ( "/resources/image/icon/icon_private.gif" ); background-position : left bottom ; } #searchList .date.protected{ background-image : url ( "/resources/image/icon/icon_protected.gif" ); } #searchList .date.syndicated{ background-image : url ( "/resources/image/icon/icon_syndicated.gif" ); } |
적용결과

"프로그래밍 / 기타" 분류의 다른 글
Textcube 1.9.0에 TinyMCE 4.0.11 적용하기 (0) | 2013/12/03 |
GCC virtual method 컴파일 문제 (0) | 2008/12/03 |
uname (0) | 2008/12/01 |
Apache 특정 파일 및 하위 디렉토리 접근 제한 (0) | 2008/11/07 |
.htaccess 활용~ (0) | 2008/01/28 |
cannot restore segment prot after reloc: Permission denied (0) | 2007/05/23 |
PuTTY에서 한글 입력하기 (0) | 2007/04/18 |
PHP SOAP Client 만들기 (0) | 2007/03/06 |
윈도우 배치파일을 이용한 백업? (0) | 2007/01/25 |
javascript String Trim (0) | 2006/08/23 |