전체 글 (30)

알로라 구멍가게

━━━━ ◇ ━━━━
배포

아보카도 에디션 latest_all 커스텀

지비님(🔗)께서 배포하셨던 latest_all 관련해서 추가 커스텀 소스를 올립니다.

기본적으로 지비님 파일 및 사용법 숙지 후 사용해주세요.

덮어쓸 경우 이전 lib과의 차이로 오류가 날 수 있습니다. 가급적 코드 추가 혹은 수정을 부탁드립니다. (기존 설치했을 경우 latest_all부분의 함수를 전체 붙여넣기를 권장)

덮어쓰기의 경우 lib 폴더 안을 덮어쓰는 형태입니다. lib > latest.lib.php가 덮어쓰기가 뜨면 성공

 

게시판의 목록 권한이 10 인 게시판 전체 보이지 않게 하기

별도의 제외 테이블 지정하지 않고도 게시판 목록권한이 10일 경우 나타나지 않게 할 수 있습니다.

 

목록보기 권한을 반드시 10이상으로 설정해주셔야합니다.

function latest_all($skin_dir='', $rows=10, $except_table, $subject_len=40, $cache_time=1, $options='')
{
	global $g5;

	if (!$skin_dir) $skin_dir = 'all';

	$latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
	$latest_skin_url  = G5_SKIN_URL.'/latest/'.$skin_dir;

	$cache_fwrite = false;
	if(G5_USE_CACHE) {
		$cache_file = G5_DATA_PATH."/cache/latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}.php";

		if(!file_exists($cache_file)) {
			$cache_fwrite = true;
		} else {
			if($cache_time > 0) {
				$filetime = filemtime($cache_file);
				if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) {
					@unlink($cache_file);
					$cache_fwrite = true;
				}
			}

			if(!$cache_fwrite)
				include($cache_file);
		}
	}

	if(!G5_USE_CACHE || $cache_fwrite) {
		$list = array();
		$rowslist = array();
        $rowsql = sql_query("SELECT bo_table FROM {$g5['board_table']} WHERE bo_list_level='10'");
		while($ret = $rowsql->fetch_array()) {
		array_push($rowslist, $ret['bo_table']);
	    }
		$implist = "'".implode("','", $rowslist)."'";
		if($except_table) { $except_table = $except_table.",".$implist;} else {$except_table = $implist;}

		$sql = "SELECT wr_parent, max(bn_datetime), max(wr_id) as wr_id, bo_table FROM {$g5['board_new_table']}
		WHERE bo_table not in ({$except_table})
		GROUP BY wr_parent, bo_table ORDER BY max(bn_datetime) DESC limit 0, {$rows}"; 
		// 게시글 기준으로 시간순 정렬하여 가장 최근 갱신된 게시글의 마지막 덧글 혹은 글을 rows 수만큼 검색함 (not in 안의 table은 제외)

		$result = sql_query($sql);
		for ($i=0; $row = sql_fetch_array($result); $i++) {
			$board[$i]['bo_table'] = $row['bo_table'];
			//게시판의 테이블명을 불러온다
			
			$sql = " SELECT * FROM {$g5['board_table']} WHERE bo_table = '{$row['bo_table']}' ";
			$tmp_sub = sql_fetch($sql);
			$board[$i]['bo_subject'] = get_text($tmp_sub['bo_subject']);
			//게시판의 이름을 불러온다

			$tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
			$sql = " SELECT * FROM $tmp_write_table WHERE wr_id = {$row['wr_id']} ";
			$rs = sql_fetch($sql); //write_table에서 검색값 (1줄)
			$board[$i]['href'] = G5_BBS_URL.'/board.php?bo_table='.$board[$i]['bo_table'].'&amp;wr_id='.$rs['wr_id'].$qstr;
			$board[$i]['wr_subject'] = get_text($rs['wr_subject']);
			$board[$i]['wr_name'] = get_text($rs['wr_name']);
			$board[$i]['wr_is_comment'] = $rs['wr_is_comment'];
			$board[$i]['wr_num'] = $rs['wr_num']*-1;
			$board[$i]['wr_comment'] = $rs['wr_comment'];
			$board[$i]['wr_comment_reply'] = get_text($rs['wr_comment_reply']);
			$board[$i]['wr_datetime'] = $rs['wr_datetime'];
			$board[$i]['wr_option'] = $rs['wr_option'];
		}

		if($cache_fwrite) {
			$handle = fopen($cache_file, 'w');
			$cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject='".$bo_subject."';\n\$list=".var_export($list, true)."?>";
			fwrite($handle, $cache_content);
			fclose($handle);
		}
	}

	ob_start();
	include $latest_skin_path.'/latest.skin.php';
	$content = ob_get_contents();
	ob_end_clean();

	return $content;
}

 

아래는 덮어쓰는 파일용입니다.

lib_게시글 목록권한 10 이상.zip
0.00MB

 

커스텀

보기 권한으로 수정할 경우

bo_list_level을 찾아서 bo_read_level로 수정

 

권한 레벨을 일정 이상으로 수정할 경우

bo_list_level='10'을 bo_list_level>기준 레벨로 수정(ex: 6레벨부터 나오지 않게 하려면 bo_list_level>5로 설정)

 

특정 멤버의 게시글 보이지 않게 하기

function latest_all($skin_dir='', $rows=10, $except_table, $except_member, $subject_len=40, $cache_time=1, $options='')
{
	global $g5;

	if (!$skin_dir) $skin_dir = 'all';

	$latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
	$latest_skin_url  = G5_SKIN_URL.'/latest/'.$skin_dir;

	$cache_fwrite = false;
	if(G5_USE_CACHE) {
		$cache_file = G5_DATA_PATH."/cache/latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}.php";

		if(!file_exists($cache_file)) {
			$cache_fwrite = true;
		} else {
			if($cache_time > 0) {
				$filetime = filemtime($cache_file);
				if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) {
					@unlink($cache_file);
					$cache_fwrite = true;
				}
			}

			if(!$cache_fwrite)
				include($cache_file);
		}
	}

	if(!G5_USE_CACHE || $cache_fwrite) {
		$list = array();
		$sql = "SELECT wr_parent, max(bn_datetime), max(wr_id) as wr_id, bo_table FROM {$g5['board_new_table']}
		WHERE bo_table not in ({$except_table})
		AND mb_id not in ({$except_member})
		GROUP BY wr_parent, bo_table ORDER BY max(bn_datetime) DESC limit 0, {$rows}"; 
		// 게시글 기준으로 시간순 정렬하여 가장 최근 갱신된 게시글의 마지막 덧글 혹은 글을 rows 수만큼 검색함 (not in 안의 table은 제외)

		$result = sql_query($sql);
		for ($i=0; $row = sql_fetch_array($result); $i++) {
			$board[$i]['bo_table'] = $row['bo_table'];
			//게시판의 테이블명을 불러온다
			
			$sql = " SELECT * FROM {$g5['board_table']} WHERE bo_table = '{$row['bo_table']}' ";
			$tmp_sub = sql_fetch($sql);
			$board[$i]['bo_subject'] = get_text($tmp_sub['bo_subject']);
			//게시판의 이름을 불러온다

			$tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
			$sql = " SELECT * FROM $tmp_write_table WHERE wr_id = {$row['wr_id']} ";
			$rs = sql_fetch($sql); //write_table에서 검색값 (1줄)
			$board[$i]['href'] = G5_BBS_URL.'/board.php?bo_table='.$board[$i]['bo_table'].'&amp;wr_id='.$rs['wr_id'].$qstr;
			$board[$i]['wr_subject'] = get_text($rs['wr_subject']);
			$board[$i]['wr_name'] = get_text($rs['wr_name']);
			$board[$i]['wr_is_comment'] = $rs['wr_is_comment'];
			$board[$i]['wr_num'] = $rs['wr_num']*-1;
			$board[$i]['wr_comment'] = $rs['wr_comment'];
			$board[$i]['wr_comment_reply'] = get_text($rs['wr_comment_reply']);
			$board[$i]['wr_datetime'] = $rs['wr_datetime'];
			$board[$i]['wr_option'] = $rs['wr_option'];
		}

		if($cache_fwrite) {
			$handle = fopen($cache_file, 'w');
			$cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject='".$bo_subject."';\n\$list=".var_export($list, true)."?>";
			fwrite($handle, $cache_content);
			fclose($handle);
		}
	}

	ob_start();
	include $latest_skin_path.'/latest.skin.php';
	$content = ob_get_contents();
	ob_end_clean();

	return $content;
}

덮어쓰기 용

lib_특정멤버안뜨게하기.zip
0.00MB

 

사용 시 

<?=latest_all( '', 10, "''", "''")?>

이런 형태로 사용합니다. 맨 마지막 '' 안에 나타나지 않을 아이디를 적어주시면 됩니다.

ex) admin일 경우

<?=latest_all('',10,"''","'admin'")?>

기존 제외 게시글과 마찬가지로 컴마로 구분합니다.ex: 'admin, admin2'

 

두 쪽 다 적용하는 경우는 아래 파일을 참고해주세요.

lib_전체패치.zip
0.00MB

COMMENT
━━━━ ◇ ━━━━
배포

아보카도 에디션 퍼스널 리뷰 게시판

- 닉네임뭐하지님의 게시판(🔗)을 다수 수정한 리뷰용 게시판입니다. 수정 버전 배포 가능하다고 적어두셔서 배포합니다. 감사합니다!

- 게시판에 사용된 이미지는 주운 짤방인데 문제 생기면 내리겠습니다….
- 현재 퍼스널 5.6만 확인되어 있습니다. 라이트에서도 작동확인을 했으나 오류가 있을 수 있습니다.
- 필드를 많이 써서 타 게시판에서 이전하기 어려울 듯합니다.
- 긴 글보다는 짧은 글에 특화되어 있습니다.
- R버튼(답글 기능)을 사용하여 타래로 이어나갈 수 있습니다. 

230304_review.zip
0.14MB

 

기존 버전에서 수정점

- 동영상 기능 지원 안 함(아예 삭제함)
- ||본문 내용|| 입력으로 스포일러 블러 치환자 지원, `본문내용`입력으로 인용구 지원
- MMB에서 사용하는 이모티콘 지원
- 이미지 여러 개 등록 시 트위터 배열로 나타남

- 관리자가 글을 쓸 경우 닉네임이 아니라 카테고리 명이 출력됩니다. 
- ,표로 나눠 해시태그를 사용할 수 있습니다.
- 기존 게시판에서 비밀글 사용 시 별도의 과정이 필요하던 것을 생략.
- 컴퓨터에서 이미지를 올리는 게 어렵다는 이야기가 있어 컴퓨터 한정 수정방식을 수정하였습니다.
모바일의 경우 다중선택 형태로 올라갑니다.
- 이미지는 게시판 설정에서 첨부파일 개수를 수정하시면 됩니다. 다만 5개 이상은 스타일을 지원하지 않습니다. 4개까지만 지원합니다. 기본 게시판이 에디터를 미지원해서(찾아보니 modal에서 아예 막더라고요) …수정방법을 못찾았습니다. html 체크하여 img src로 사용하시는 쪽을 추천드립니다…
- html 사용 및 체크가 가능하도록 수정. 자동줄바꿈 스크립트를 modal이 먹어대서 그냥 자동 줄바꿈되는 html로 해놨습니다.
- 링크 간략화로 수정
 

이용 관련

- img/stamp 내에 이미지 파일을 올려 사용 시 점수가 아니라 해당 이미지로 대체됩니다. 사용 시 점수란은 비워두시는 게 좋습니다. 아무것도 넣지 않는다면 점수 칸만 나타납니다.
- 전체 색상 수정은 custom.css 안에 있는 point-color1, point-color2를 수정하시면 됩니다.
- 스포일러 체크 시 커버 외 이미지 및 본문 내용 전체가 가려집니다.
- 완결 여부를 체크할 경우 커버 이미지가 좌측에 나타나는 레이아웃이 되며, 아닌 경우 간단한 레이아웃이 됩니다(세 번째 참조).


- 커버 이미지 미 등록 시 holo.jpg 이미지가 기본으로 뜹니다.
- img/stars.png 파일을 수정(색조 등)하면 기본 점수 별의 이미지를 수정하실 수 있습니다.
- R로 타래 작성 시 아래 내용은 계승됩니다: 제목, 비밀글, 스포일러, 커버 이미지, 해시태그
 
- 커버 이미지가 왼쪽 배경부분에 뜨는 것이 싫으시다면

<div class="article-tthumbnail" <?if($list[$i]['wr_1']) {?> style="background:url('<?=$list[$i]['wr_1']?>') 20% center; background-size: cover; animation:none; opacity: .7; background-blend-mode: luminosity;     filter: blur(2px); scale: 1.2; background-color:var(--point-color1);"<?}?>>

를 아래처럼 수정하시면 됩니다.
 

<div class="article-tthumbnail">

 
- custom.css에서  --border-radius 값을 수정하면 모서리를 한꺼번에 수정할 수 있습니다.
- 왼쪽 커버 이미지가 너무 작아지는 것이 신경쓰인다는 이야길 받아 min-width를 300px로 수정했습니다. 대신 300px 미만의 이미지를 넣으면 좌우 공백이 많습니다.
- 지비님의 텍스트 서식(🔗)을 추가했습니다.

기존에 쓰고 계셨다면 

add_stylesheet('<link rel="stylesheet" href="' . $board_skin_url . '/textggu.css">', 0);

이 부분과

<script src="<?=$board_skin_url?>/textggu.js"></script>

이부분을 삭제해주시면 좋습니다.
[서식보기]를 누르시면 우하단에 예제가 나오도록 해놨습니다.

 modal에서 js를 먹어서 일부 소제 예제가 안보입니다...(+글씨체가 통일되어 있으니 주의)

 

주의사항

- 수정 재배포 OK, 다만 유료 판매는 금합니다.

- 기능 추가에 대한 문의는 받지 않습니다…

 

 

Update Log

2023년 2월 25일 지인한정 배포
2023년 2월 25일 이미지 첨부 방식을 수정(write.skin.php / list.skin.php)
2023년 2월 26일 링크 치환 및 이모티콘 부분 수정(write.skin.php / list.skin.php)
2023년 2월 26일 html 함수 가능하도록 수정 (write.skin.php / write_update.skin.php / list.skin.php)
2023년 2월 26일 왼쪽 썸네일이 지나치게 작아지는 부분 때문에 수정 및 모바일 스타일 깨짐 수정 (style.css)
2023년 2월 26일 카테고리 목록이 안 뜨던 부분 수정 (style.css / list.skin.php)
2023년 2월 26일 지비님 텍스트 서식 추가

2023년 2월 27일 해시태그가 모바일에서는 잘려보이는 현상 수정

2023년 3월 3일 몇 가지 사소한 오류 수정(list.skin.php / custom.css / archieve.lib.php)

2023년 3월 4일 본문 해시태그 오류 수정(archieve.lib.php)

2023년 3월 6일 전체 배포

 

 

COMMENT
━━━━ ◇ ━━━━
배포

아보카도 에디션 인스타그램 로드비 가로형

지비님이 배포하셨던 인스타 형태의 아보카도 게시판(🔗)을 가로형으로 수정한 버전입니다.

호환 확인은 아보카도 퍼스널 에디션입니다(보호글 출력문제는 🔗)

라이트 호환도 가능한 것 확인하였습니다.

230330_load_insta(horizontal).zip
3.30MB

수정점

- 이전 배포와 비슷하게 게시글의 해시태그를 콤마만으로 구분해서 뜰 수 있게 했습니다.

- 최소 높이가 설정되어 있습니다. 접힘 등으로 인해 코멘트가 거의 보이지 않는 걸 방지하기 위함입니다.

- 리플창 아래로가 사실상 의미가 없어져서 없앴습니다.

- 높이는 로그(이미지)에 맞춰져 있으며, 코멘트란 높이도 맞춰져 스크롤바가 나타납니다. 스크롤바 색은 로드비 색을 따르도록 했습니다.

- 모서리 둥글기 설정은 이쪽에서 수정가능하도록 하였습니다.

 

주의점

수정한 것을 유료로 재배포 하지 말아주세요, 그 외 기존 분들의 스킨 정책과 일치합니다.

 

Q&A

- 아보카도 라이트에서 코멘트 입력 부분이 나타나지 않을 경

style.css에서 #log_list .bo_vc_w .btn_confirm 부분을 찾아 괄호 안쪽에 padding: 0; 문구를 추가해주시면 됩니다.

 

Update Log

2023년 2월 24일 배포

2023년 3월 30일 모바일 환경에서는 세로로 뜨도록 수정(style.css)

@media (max-width:1000px) {
	#log_list .item .ui-pic .pic-inner { flex-direction: column; }
	#log_list .item .ui-comment-inner {position:relative;}
}

기존에 수정하셨다면 style.css 맨 아래에 복붙해주시면 됩니다.

COMMENT