글쓴사람 진선
글쓴시간2013년 7월 26일 오후 5시 33분 42초
    제목루핑하는 곳에서 문자열을 치환하고 싶은데 변수가 들어있어서요 어떻게해야할
안녕하세요.
몇년째 눈팅만하다가 질문이 있어서 올려보내요.
매크로 , 프리필터 , 포스트필터 , 함수는 잘안쓰는 기능이어서 이번에 써볼려는데
저거 없어도 훌륭해서요 ㅋㅋ

{@ list }
<div>{.name}</div>
{/}

이라는 곳이 있는데 이름을 쭉 나열해주는 화면입니다.
근데 이걸 이름이 나오는 곳은 앞뒤로 어떤내용을 좀붙여서 기능을 추가할려고 하는데요. 이게 한군데라면 그냥하겠는데 모든화면에 다 적용되야해서 필터나 다른 기능을 사용해서 할려고 하는데요. 거기에 변수값이 같이 들어가야되요
원하는 출력결과는

{@ list }
<div>@@name_prefix@@{.name}@@name_postfix@@</div>
{/}

라 고만 표기하면

<div><span id= 'div1' onclick = "dsp_name('이름a')">이름a</span></div>
<div><span id= 'div2' onclick = "dsp_name('이름b')">이름b</span></div>
<div><span id= 'div3' onclick = "dsp_name('이름c')">이름c</span></div>

이렇게 나오게 하고 싶습니다.

어떤기능을 써야할까요
매크로는 변수전달이 안되는거 같고
프리필터는 변수전달이 되나 루핑시 각각의 변수를 전달하는 방법을 모르겠고
함수를 쓰자니 표기법을 각 화면마다 함수호출로변경해야할듯하고

에매해서요. 고급기능들을 잘안써봐서

단순 치환만한다면 프리필터로 될꺼 같은데 값이 들어가야해서
어떤게 좋은지 방법을 좀 알려주셔요

정 방법이 없다면 함수하나 만들어서 써야죠머

그리고 한가지
질문사항이 더 있는데요.
템플릿에도 플러그인에 보면 함수가 있잔아요.
근데 php에서 함수를 정의해서 사용하는것과
플러그인에 함수를 정의해서 사용하는것이 차이가 뭐가 있는지요
그러니깐 플러그인에 함수를 정의해서 사용할때의 장점이 뭐가 있나요?
설계의도를 몰라서 활용을 못하고 있는 기능중하나라서요.

관리자 진선님 안녕하세요.

우선 플러그인 함수의 장점은

그냥 php 함수나 마찬가지인데 템플릿에서 사용할 함수를 저런식으로 만들어서 구분하자는게 취지이구요.

include_once "함수가들어있는파일.php";

이걸 안해줘도 된다는 점이 있습니다. __autoload 처럼 플러그인은 사용될때 해당 플러그인만 자동 인클루드됩니다.



그리고 필터나 매크로같은것을 써서 좋을 수도 있지만 인수인계라든가 나중에 관리가 어려울 수도 있으니,

꼭 필요하다고 생각되는 경우에 사용하시고, 사용할 경우 왜 어떤식으로 사용했다는 문서도 남겨두시는게 좋습니다.

위의 경우

{@ list }
<div><span>{.name}</span></div>
{/}

<script>
$('.... span').click(function() {
 display_name( $(this).text() );
 ...
})
</script>

jQuery를 사용하면 이런 식으로 될텐데, 자바스크립트를 사용하는 상황이라면, 템플릿코드는 단순하게 유지하고, 자바스크립트를 활용하는 편이 좋을 것 같습니다.

다른 사항이 있으면 또 질문하시기 바랍니다.
13-07-26 22:20
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com