[1.0.2]포인트 선물 플러그인 > 그누보드6 플러그인

그누보드6 플러그인

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

[1.0.2]포인트 선물 플러그인 정보

[1.0.2]포인트 선물 플러그인

첨부파일

g6_point_gift-main.zip (195.0K) 42회 다운로드 2024-01-23 06:04:23

본문

그누보드6 플러그인 최초 업로드 해봅니다 헤헤

깃허브에도 올려두었으니 편하신 방법으로 다운받으시면 될 것 같습니다.
https://github.com/kisa002/g6_point_gift

 

추가 필요하신 기능이 있다면 댓글로 의견 남겨주세요!

990792982_1706083379.1581.png


990792982_1706083379.1581.pngv1.0.2 - 2024. 02. 05

변경된 그누보드 라우터 규칙을 반영하였습니다.

포인트 1미만 선물 방지 로직을 서버에도 추가하였습니다 (파라미터 위변조 및 API 호출 방지)

990792982_1706083379.1581.pngv1.0.1 - 2024. 01. 25

이쁘게 디자인해보려고 노력했습니다.

또한 홈페이지 다크/라이트 테마에 따라 색상이 변경됩니다.

990792982_1706180007.8192.png990792982_1706180013.2393.png

 


 

그누보드6 포인트 선물 플러그인

플러그인 적용으로 간단하게 유저간 포인트를 선물할 수 있습니다.

관리자 대시보드 내 포인트 선물 내역에서 사용자들의 선물 내역을 확인할 수 있습니다.

사용방법

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

플러그인 이미지

포인트 선물

990792982_1706083221.5258.png

[사용자] 포인트 내역

990792982_1705987767.2081.png

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

990792982_1706083228.8279.png

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/

 
 
추천
9

댓글 전체

우와 정말 영광입니다! 그런데 지금보니 비로그인 시 오류가 있었네요...

로그인하지 않은 경우 경고창이 표시되도록 수정하였고, 깃에 push 해두었습니다.

 

 

혹시 기본 라우터가 /bbs 되어있는데..

 

메인으로 할 수 없나요 ?

 

주소/point_gift

 

이것 저것 만져보고 있는데 파이썬 어렵네요 ㅋ

 

좋은 자료 및 참고용으로 공부 많이 될 것 같습니다! 고맙습니다. 추천

한가지 더질문있습니다.

 

혹시 반환할때 request 값이 context 랑 같이 넘어가던데

 

항상 같이 넘겨야 하나요 ??

 

생략하면 문제가 있을까요 ?

확인해보니 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])

 

d692b58b82dce8b37e98c4bc745d58c4_1705986933_8365.png

아 미니님a님께서 위의 오류를 만나고 계신 것 같아 수정하실 수 있도록 답글 작성한 것 이였는데 혼란을 드린 것같네요 죄송합니다 ㅜㅜ

음 어디 부분의 requset와 context를 말씀하시는지 모르겠네요....

 

우선 templates.TemplateResponse으로 반환시 넘겨지는 context를 말씀하시는 것이라면 제가 만든 플러그인에서는 context를 재사용할 경우가 없어 생략하였습니다.

 

초기 router에서 받는 Request를 말씀하시는 경우 요청에서 넘어온 상태를 사용하지 않는다면 생략가능합니다. 다만 이경우 templates.TemplateResponse을 사용할 수 없습니다. 

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 "",

    }

 

리퀘스트를 넘기는데 저기 정보 확인해보니 ..헤더 정보랑

 

뭐 쿼리 이런게 있는데 이걸 매번 넘기는게 이유가 있을까 해서 질문드렸습니다.

제가 본 바로는 fastapi 는 starlette 이라는 프레임워크를 기반으로 돌고있는데요

 

스타렛에서는 템플릿을 호출할 때 context 에 request 를 넣게 함수가 구성되어있어요

 

그누보드 6에서는 request.state.login_member 에 로그인 정보같은게 있네요..

request.state.config 에는 그누 5처럼 config 테이블이 있고요 아직 다못봤습니다만

전체 5 |RSS

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT