2월 27, 2024

[그누보드] 로그인 입력 색깔 변경하기

1. 그누보드 로그인 css 변경하기





그누보드 웹사이트를 제작할 때 위와 같이 로그인 화면이 보이는데, 아이디와 비밀번호를 입력해도 글씨 색깔이 흰색이어서 보이지 않는 문제가 있었다. 배경이 흰색이어서 겹쳐 글씨가 보이지 않는 문제가 있는데 이것 또한 간단하게 css 부분을 수정하여 해결할 수 있다.

 

2. 수정 경로

나는 모바일에서만 문제가 발견되었기 때문에 모바일 경로로 들어가서 수정을 해주었다.

 

theme 폴더 -> 현재 사용하고 있는 테마 클릭 -> mobile 폴더 -> skin 폴더 -> outlogin 폴더 -> style.css 클릭

 

style.css에 들어가면 원래 

 

#ol_before input[type=text], #ol_before input[type=password] {width:100%;border:1px solid #c2c9d9;background:none;height:40px;margin:0 0 5px;color:#fff}

 

라고 되어 있는 부분이 있는데 이 부분에서 

 

{color: #fff};

부분에서 hex code를 수정하면 된다. 위에서처럼 원래 내가 사용하고 있는 테마에서는 기본이 흰색으로 설정되어 있는 것을 알 수 있다. 이 부분을 자신이 원하는 색깔의 hex code로 바꾸어주면 된다. 

 

나는 검정색으로 바꾸고 싶었기 때문에 #000으로 바꾸어주었다.

 

이렇게 바꾼 뒤에 원래 style.css 가 위치해있었던 곳으로 다시 FTP를 이용해 업로드해주면 된다.


3. PC 버전 로그인 입력 색깔 변경

나는 모바일에서의 색깔을 변경하고 싶었기 때문에 위에서처럼 mobile 경로로 들어갔던 것이지만 만약 PC 버전의 로그인 입력 색깔 변경을 원한다면 

 

theme 폴더 -> 현재 사용하고 있는 테마 클릭 -> skin 폴더 -> outlogin 폴더 -> style.css 클릭

 

으로 들어가서 똑같은 부분을 변경해주면 된다. 이렇게 모바일/ PC 경로가 분리되어 있기 때문에 각각 다른 style을 적용시키는 것도 가능하다. 

 

또한 style.css에 들어가면 로그인 입력 색깔 뿐만 아니라 버튼 색깔 등 다양한 style을 자신이 원하는 대로 변경이 가능하다. 

 

 

위와 같이 변경을 해주었더니 나는 입력을 하면 이제 색깔이 검정색으로 변경되었다. 


2월 24, 2024

게시판에 코드 추가하기 syntax highlight (Python, C++)

1. 게시판 코드 작성 기능 추가



이런 식으로 게시판에 코드 작성 기능을 추가하려면 어떻게 하면 될까?

2. syntax highlight plugin

내 경우에는 syntaxhighlight_by_se2라는 syntax highlight plugin을 사용하고 있었는데 그 경우,
 
/plugin/syntaxhilight_by_se2/syntaxhilight.inc.php
에 들어가서 아래와 같은 코드를 추가해주면 된다.
 
var arrLang = {

"HTML" : ["xml", "shBrushXml.js"] ,
"CSS" : ["css", "shBrushCss.js"] ,
"JAVA" : ["java", "shBrushJava.js"] ,
"JAVASCRIPT" : ["jscript", "shBrushJscript.js"] ,
"VB" : ["vb", "shBrushVb.js"] ,
"PHP" : ["php", "shBrushPhp.js"]
,"C" : ["c", "shBrushCpp.js"]
,"C++" : ["cpp", "shBrushCpp.js"]
,"Python" : ["py", "shBrushPython.js"]
};


/div>
원하는 언어를 이런 식으로 추가해주면 된다. C, C++, Python도 많이 쓰이는데 기존 plugin에 존재하지 않아서 추가로 넣어주었다. 이런 식으로 원하는 언어를 추가해주면 되겠다. 



2월 23, 2024

[그누보드] 메인화면 게시판 설정 코드 살펴보기 (index.php)

1. Introduction

이번 포스팅에서는 그누보드의 메인화면을 어떻게 바꾸는지 코드를 살펴볼 것이다.

특히 나의 경우 커뮤니티를 제작하는 것이 목표였기 때문에 여러 게시판 각각에서 최신글을 불러 메인화면에 어떻게 띄우는지에 대해서 알아보도록 하겠다.



 2. index.php 파일 경로 및 코드

theme 폴더 → 현재 내가 사용하고 있는 테마 선택 → index.php 

에 들어간다. 

 

index.php 파일에 들어가보면,

 // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
 // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
 echo latest('theme/basic', $row['bo_table'], 6, 24);

위와 같은 코드가 보인다. 

즉 우리는 echo latest 함수를 사용해서 최근 글을 가져올 것이다. 

echo latest 함수는 위의 설명에도 나와있듯이,

latest(스킨, 게시판아이디, 출력라인, 글자수) 이런 기본형을 가지고 사용한다.

위에서는 $row['bo table'] 이라는 식으로 사용되었지만 해당 자리에 '게시판 아이디'의 형식으로 단순히 사용해주면 된다.

예를 들어 게시판 ID가 qa였다면,

echo latest('theme/basic', 'qa', 6, 24); 라고 써주면 되는 것이다. 뒤에 있는 두개의 숫자는 몇 줄을 출력할지, 몇 개의 글자수를 max로 할지에 따라서 변경해주면 된다. 

 


3. 원하는 대로 코드 변경하기

위의 코드처럼 작성하면, 게시판이 긴 가로 한 줄로 나오게 된다. 하지만 우리는 보통 게시판이 가로 전체로 나오길 원치 않고, 한 줄에 게시판 2개를 출력해서 공간을 조금 더 효율적으로 사용하길 원한다. 그 경우에 

  <div style="float:left" class="lt_wr">
        <?php echo latest('theme/basic', 'in_b_free', 6, 24); ?>
      </div>
 <div style="float:left;margin-left:2%" class="lt_wr">
       <?php echo latest('theme/basic', 'in_b_info', 6, 24); ?>
        </div> 

위의 코드처럼 첫 번째 <div> 태그에는 margin을 설정하지 않고 두번째 <div> 태그에 왼쪽 여백 (margin-left)의 값을 설정해주면 한 줄에 게시판을 두 개씩 출력할 수 있다. 


 

보통 갤러리 같은 경우에는 한줄에 사진을 이어서 보여주어야 하기 때문에 한 줄 가로를 통째로 한 게시판이 사용하도록 하는 경우가 많다.

echo latest('theme/gallery_block', 'gallery', 6, 23);

그럴 때는 위의 코드처럼 단순히 적어주면 된다. 


실제로 index.php 의 초기 코드에 들어가보면 우리가 원치 않는 게시판들이 여러개 있을 수 있는데 그 부분은 주석 처리하고 원하는 게시판만 추가하여 사용하면 된다.

삭제를 해도 되지만 혹시 모를 일에 대비하여서 주석 처리를 권장한다! 


 4. 접속자 집계 기능


또한 index.php의 초기 코드의 마지막 부분을 살펴보면, 

   <?php echo visit('theme/basic'); // 접속자집계, 테마의 스킨을 사용하려면 스킨을 theme/basic 과 같이 지정 ?>

위와 같이 echo visit이라는 것을 볼 수 있는데 이는 접속자집계이다. 즉 



이런식으로 오늘 몇명이 방문했는지를 나타내 주는 것이다. 이것 또한 원하는 사람들은 그대로 남겨두고, 이 기능을 원치 않는 사람들은 이를 주석처리해서 사이트상에서 삭제해주면 된다. php 코드를 알지 못하더라도 실제로 index.php에 들어가서 코드를 살펴보면 해당 코드가 어떤 기능을 수행하는지 알 수 있을 것이다. 


2월 21, 2024

[그누보드] 관리자 로그인 안될 때 해결방법 (관리자 페이지 접속 불가할때)

그누보드로 커뮤니티를 제작하다가 스킨 변경을 해주었는데 갑자기 관리자 로그인이 되지 않는 현상이 발생했다.

 



관리자 페이지 오류 메세지

 

분명 아이디와 비밀번호를 잘 입력했는데 위와 같이 떠서 관리자 페이지에 접속되지 않아서 매우매우 당황스러웠다.

 

관리자페이지에 접속이 되어야지 홈페이지 제작을 이어나갈 수 있는데 그래서 홈페이지 초기화를 해야하나까지 생각을 했었다.

 

이 경우에는 그냥 새로운 회원으로 가입을 하여서 그 아이디에 관리자의 권한을 부여하는 식으로 문제를 해결했다.


우선,

<?
// 최고관리자
if ($member[mb_id] == 'admin1') $is_admin = 'super';


?>

위와 같은 식으로 php 파일을 생성해준다. 파일 제목은 상관없으며, 나는 newadmin.php로 했다. 기존에 admin같은 파일은 존재하기 때문에 FTP에서 잘 보고 겹치지 않는 이름으로 생성해주자.

 

위의 코드는 최고관리자의 권한을 id 'admin1'을 가진 사람에게 주자라는 뜻이다. 그러니깐 자신이 새로 회원가입할 때 만든 아이디를 admin1에 대신 입력해주면 되는 것이다.

 

그런 다음에 php 파일을 저장해주고 루트 디렉토리의 extend 폴더에다가 등록시켜놓자. 

그런 다음에 해당 아이디로 로그인해서 들어가면 다시 관리자 페이지로 이동하는 버튼이 보일 것이다. 이 방법을 사용하면 초기화를 하지 않아도 관리자 페이지로 들어가는 다른 방법이 생기는 것이다.

 

이 방법은 이렇게 관리자로그인이 안 될 때도 사용되지만, 단순히 관리자를 추가해주고 싶을 때도 유용하게 사용된다. 관리자페이지에 들어가서 일일히 관리자를 추가해주지 않아도 php 파일을 수정함으로써 한번에 해결할 수 있다.


이렇게 하면 새로 등록한 아이디가 관리자 페이지로 접근할 수 있는 권한은 부여되나, 최고관리자가 되었다는 뜻은 아니다.

기본환경설정 -> 최고관리자로 들어가서 바꾸어주어야 하는데, 처음에는 admin 계정만 있고 새로 추가한 아이디를 선택할 수 있는 칸이 보이지 않을 것이다.

 

이럴 경우, 또 extend 에 있는 코드를 수정해주는 것이 필요하다.

 

extend.user.config.php 파일에 들어가보면,

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

?>

위와 같이 코드가 구성되어 있을 텐데, 이 부분을 다음과 같이 변경해주면 된다.

 

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//아래 부분의 코드를 추가
sql_query(" update {$g5['config_table']} set cf_admin = '새로만든 아이디' ");
sql_query(" update {$g5['member_table']} set mb_level = '10' where mb_id = '새로만든 아이디' ");
?>


이렇게 하고 다시 새로고침을 한 다음에 최고관리자로 들어가보면 내가 설정한 아이디값이 추가로 보이는 것을 알 수 있다. 

 

이것을 해준다음에 다시 코드를 원상복구시켜놓아야 한다.

다시,

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>

원래 상태로 돌려놓아 php 파일을 올려두자. 이렇게 하면 최고관리자가 초기상태 admin에서 내가 설정한 아이디로 바뀐 것을 알 수 있다.


만약 최고관리자 권한을 주고 싶은 것이 아니라, 게시판관리자처럼 일부만 권한을 주고 싶을 때는 코드를 조금만 수정하면 된다.

// 게시판관리자
if ($bo_table == '게시판아이디')
{
    if ($member[mb_id] == 'id1') $is_admin = 'board';
   
    if ($is_admin == 'board') $board[bo_admin] = $member[mb_id];
}


위와 같이 코드를 작성해주면 게시판 관리자의 권한을 가진 사람 또한 추가를 해줄 수 있다.


 

마찬가지로, 그룹관리자의 권한을 주고 싶으면,


// 그룹관리자
if ($gr_id == 'groupid')
{
    if ($member[mb_id] == 'id1') $is_admin = 'group';
   }


위와 같이 코드를 조금만 수정해주면 된다.

 

위의 php 코드를 사용하여서 관리자 로그인에 난항을 겪을 때 슬기롭게 해결해보자.


2월 11, 2024

[그누보드] 최신글 불러오기 게시판 조회수, 추천 아이콘+숫자 표시하기

그누보드의 게시판을 만들면 글 옆에 원래는 댓글까지만 기본으로 표시되고, 조회수와 추천수는 표시되지 않았다. 원래 기본설정이 그렇게 되어있다.

 

여기서 위의 사진처럼 조회수, 그리고 추천수까지 모두 다 표시되게 하려면 어떤 코드를 수정해야 할까?

 

theme 폴더 -> 현재 사용하고 있는 테마 폴더 -> skin 폴더 -> latest 폴더 -> basic 폴더 -> latest.skin.php

 

파일에 들어가보자.


 

그러면 기본적으로,

<div class="lat_info">
<span class="sound_only">작성자</span><span class="lt_nick"><?php echo $list[$i]['name'] ?></span>
<i class="fa fa-clock-o" aria-hidden="true"></i> <span class="lt_date"><?php echo $list[$i]['datetime2'] ?></span>
<?php
	if ($list[$i]['comment_cnt'])  echo "
	<span class=\"lt_cmt\"><i class=\"fa fa-commenting-o\"></i> ".$list[$i]['comment_cnt']."</span>";
	?>
			                 
</div>

위와 같은 코드를 발견할 수 있다.

 

즉 comment까지만 출력이 된 것인데, 우리는 여기에 조회수, 추천수까지 보이게 하고 싶다면,

 

<?php echo "<span class=\"lt_cmt\"><i class=\"fa fa-eye\"></i> ".$list[$i]['wr_hit']."</span>"; ?>
<?php echo "<span class=\"lt_cmt\"><i class=\"fa fa-thumbs-o-up\"></i> ".$list[$i]['wr_good']."</span>"; ?>

위와 같은 코드를 추가하면 된다. 

 

위에는 아이콘까지 출력하는 종합적인 코드다.


만약 아이콘을 출력하지 않고 단순히 조회수만 보여주고 싶다면,

 <?php echo $list[$i]['wr_hit'];?>

만 출력하면 된다.


그러면 만약 내가 아이콘을 바꾸고 싶다면 어떻게 할 수 있을까?

<?php echo "<span class=\"lt_cmt\"><i class=\"fa fa-thumbs-o-up\"></i> ".$list[$i]['wr_good']."</span>"; ?>

이 부분에서 "fa fa-thumbs-o-up\"이라는 부분을 바꾸면 된다. 

 

저 부분의 코드는 자신이 임의로 설정하는 것이 아니라,

fontawesome.com/v4.7.0/icons/

font awesome 위의 링크 페이지에 들어가서 자신이 원하는 아이콘을 누르면 


위처럼 i class 뒤에 "fa fa-tree" 처럼 값이 나오는데 저 값을 넣는 것이다. 

 

그러면 자연스럽게 아이콘이 변경이 된다. 

 

FontAwesome 페이지에 들어가면 아이콘들이 굉장히 많이 있으니 직접 들어가서 원하는 것을 골라서 사용해보자. 

 


모바일에서도 똑같은 방식으로 적용하면 된다. 

다만 mobile 폴더에서 skin/latest/latest.skin.php 에 들어가서 똑같은 코드를 추가해주어야 한다.