글쓰기 직 후 동작하게 하려고 합니다.
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.2 |
한줄 메모 스킨 입니다.
list.html 에 코드를 추가할 생각입니다.
그런데 해당 코드가 이전 액션이 글쓰기로 글을 등록한 직후라야 동작하게 하고 싶습니다.
글쓰기 는 글쓰기 폼으로 전환되어서 글을 작성합니다.
act=dispBoardWrite
list.html에 예전에 다른 질문에 받은 답변을 참조해서
{@ parse_str(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY), $args);}
cond="$args['act'] == 'dispBoardWrite'"
을 사용해서 테스트 했는데 글 등록 후 글목록 화면에서 해당 코드가 보이지 않습니다.
질문을 등록하고 생각해보니 위 코드를 쓰는 것과 전혀 다른 상황이네요.
저 사례는 열린창에서 클릭하여 이동될때 act가 뭐였는지 확인해 조건을 거는건데..
제가 지금 하려는 건 글 등록이 된 후 화면이 목록화면으로 전환한 상태에서 동작하는거라 전혀 다를 것 같습니다.
이 경우 어떻게 해야 할까요 ?
댓글 13
트리거만 작동시킬 모듈 하나 만들어서 원하는 모든 트리거는 거기서 작동하도록
제 생각에는 스킨단에서도 쉽게 구현 가능할것 같은데요...
반드시 어렵게 서버사이드에서 별도로 액션등을 감지하여 처리하거나
복잡하게 쿠키를 굽거나 하는 필요없이
어차피 글을 작성한 직후에는 본인이 작성한 글이 보이는것을 응용해서
두가지 조건만 활용하면 될것 같은데요...
_read.html 에서
{$oDocument->getMemberSrl()} 과 {$logged_info->member_srl} 이 동일하면서
{$oDocument->getRegdate} 가 현재 시간의 5초 이내인 경우에는 본인이 방금 작성한 글이라고
판단해도 무리없지 않을까요?
어차피 글작성자는 자신이 쓴글을 바로 읽게되고, 그 읽고있는 글이 본인이 작성한것이며 5초이내에 작성한 글이라면
지금 막 작성하고 내가 그 글을 보고 있다는 가정이 충분히 될것 같은데요... (실제로도 그럴거구요)
위 두가지 조건을 모두 충족하는 경우에만 특정한 자바스크립트를 실행한다거나... 하면 되지 않을까 싶어요
이 경우에도 어차피 게시글 리스트는 loop 형태로 뿌려주게 되니 사용자의 member_srl과 regdate 비교는
가능할것으로 보입니다. 당연히 글작성 직후 이벤트 이니 글목록 상위의 몇개만 추려서 비교하면 될거같구요
제안해주신 것 감사합니다.
비회원의 경우 관리자만 식별이 가능하기에...
아니면 리퍼러값을 활용해서 자바스크립트로 처리하셔두 되요
목록페이지를 보는데 만약 이전페이지가 글쓰기 페이지였다면 작동 하도록요
(단점은 글쓰기 화면에서 목록으로 버튼등이 있어서 목록으로 이동하게 되면 글작성을 안하고 이동해도 코드가 실행되는 것은 단점이네요... 이건 사용자가 글쓰기 화면에서 목록으로 못가도록 버튼을 없애버리면 해결 됩니다...??
아니면 글쓰기 화면에서 목록으로 버튼을 누르면 리퍼러조작을 하고 list로 이동하게 추가 처리하셔두 되구요!)
아래 코드를 list.html 상단이나 하단 아무곳에 적당히 수정해서 넣으시면 작동합니다.
var ref = document.referrer;
if( ref == "https://b1n.st/index.php?mid=board&act=dispBoardWrite" )
{
alert ("글작성 해주셔서 고맙습니다.\n이전주소 : "+ref);
};
</script>
예시주소 : https://b1n.st/board (비회원 글작성 가능하게 열어두었으니 테스트 해보세요)