그누보드6 플러그인 최초 업로드 해봅니다 헤헤
깃허브에도 올려두었으니 편하신 방법으로 다운받으시면 될 것 같습니다.
https://github.com/kisa002/g6_point_gift
추가 필요하신 기능이 있다면 댓글로 의견 남겨주세요!

v1.0.2 - 2024. 02. 05
변경된 그누보드 라우터 규칙을 반영하였습니다.
포인트 1미만 선물 방지 로직을 서버에도 추가하였습니다 (파라미터 위변조 및 API 호출 방지)
v1.0.1 - 2024. 01. 25
이쁘게 디자인해보려고 노력했습니다.
또한 홈페이지 다크/라이트 테마에 따라 색상이 변경됩니다.


그누보드6 포인트 선물 플러그인
플러그인 적용으로 간단하게 유저간 포인트를 선물할 수 있습니다.
관리자 대시보드 내 포인트 선물 내역에서 사용자들의 선물 내역을 확인할 수 있습니다.
사용방법
- 그누보드6 프로젝트 최상단에 있는 plugin 폴더에 본 프로젝트를 압축해제 합니다.
- 관리자 대시보드 내 환경설정 - 플러그인 관리에서 포인트 기프트 항목에 있는 플러그인 적용을 클릭합니다.
- 사이트 주소 뒤에 /bbs/point_gift에 접속하면 포인트를 선물할 수 있습니다.
ex) http://SERVER_ADDRESS/bbs/point_gift
플러그인 이미지
포인트 선물

[사용자] 포인트 내역

[관리자 대시보드] 포인트 선물 내역

TODO
- 이쁜 디자인
- 새창 페이지
Plugin Info
plugin Name: 포인트 기프트
plugin URI: https://github.com/kisa002/g6_point_gift
Maker: kisa002
Maker URI: https://haeyum.dev
Version: 1.0.0
Detail: 유저간 포인트를 선물할 수 있습니다.
License: MIT
License URI: https://opensource.org/license/mit/
댓글 20개
확인해보니 plugin 내 ___init___.py에서 app.include_router 호출 시 prefix=f"/{router_prefix}"를 인자값으로 넘겨주고 있습니다.
문제는 router_prefix 혹은 admin_router_prefix를 ""으로 수정하는 경우 prefix="/"와 같은 형태가 되기에 오류가 발생하는 것 같습니다.
FastAPI 발생 오류
assert prefix.startswith("/"), "A path prefix must start with '/'"
assert not prefix.endswith(
"/"
), "A path prefix must not end with '/', as the routes will start with '/'"
그렇기에 prefix 인자값 자체를 생략하거나 혹은 /문자를 router_prefix에 정의하시면 될 것 같습니다.
1) 접두사 없이 주소/name 을 사용하기 희망하는 경우
# ___init.py___
def register_user_router():
app.include_router(router, tags=[module_name])
2) 접두사 있고 없고를 유연하게 사용하고 싶은 경우
# plugin_config.py
router_prefix = "" # bbs/name 형태를 원한다면 /bbs 로 정의
admin_router_prefix = ""
# ___init.py___
def register_user_router():
app.include_router(router, prefix=f"{router_prefix}", tags=[module_name])
request 는 기사님이 아니라 리자님께 질문드렸었어요...^^;
template 로 반환되는 값 보면
context = {
"request": request,
"board": board,
"writes": writes,
"bo_table": bo_table,
}
context = {
"request": request,
"title": content.co_subject,
"content": content,
"co_himg_url": head_img['img_url'] if head_img['img_exists'] else "",
"co_timg_url": tail_img['img_url'] if tail_img['img_exists'] else "",
}
리퀘스트를 넘기는데 저기 정보 확인해보니 ..헤더 정보랑
뭐 쿼리 이런게 있는데 이걸 매번 넘기는게 이유가 있을까 해서 질문드렸습니다.
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기