Extra Form
PHP PHP 8.0
CMS Rhymix 2.1
<?php
$msrl = Context::get('module_srl');

$conn=new pdo('mysql:host=localhost;dbname=디비명','아이디','패스워드');
$stmt = $conn->prepare("SELECT value FROM rx_document_extra_vars WHERE module_srl = $msrl and eid = 'area'");
$stmt->execute(); 
$result = $stmt->fetchAll();
$conn = null; 
?>

 

board 모듈의 스킨단에서 위와 같은 PHP문법을 활용하여

특정한 mid(게시판) srl을 가진, 확장변수중 이름이 area인 값을 출력하고 있습니다.

 

이것을 라이믹스 템플릿 문법으로 바꾸고 싶습니다.

 

board 모듈의 컨트롤러? 모델? 을 활용하면 위와 같이 하드코딩 하지 않고 간단하게 작성 가능할 듯 한데..

혹시 위의 PHP문법으로 작성된 것을 라이믹스의 템플릿 언어로 바꾸어 스킨단에서 활용 하려면 어떻게 해야 될까요?

 

위의 PHP문법을 라이믹스 문법으로 바꾸려면 어떻게 할지 예제를 한개만 답변 주실 수 있을까요??

 

혹은 모듈의 특정 함수등을 스킨에서 사용 할 수 있도록 설명된 예시나 가이드가 있다면 부탁 드립니다.!!

감사합니다 :)

  • profile

    대부분의 PHP 문법은 라이믹스에서 그대로 사용할 수 있습니다. 템플릿에서도 중괄호만 조심하면 나머지는 크게 다르지 않고요.

     

    DB 쿼리도 기본이 PDO이기 때문에 크게 바꿀 것이 없습니다. 라이믹스에서 제공하는 테이블 접두사 자동 처리, prepared statement 변수 자동 입력 등의 편의기능을 활용하면 좀더 편리하고 안전할 뿐입니다.

     

    {@

    // 커스텀 쿼리 사용시 rx_는 붙이지 않음

    // 숫자나 문자열 등이 들어갈 만한 부분은 모두 ?로 치환하고 별도의 배열로 전달

    // 템플릿에서 Context::get('var')는 $var와 동일함

    $stmt = DB::getInstance()->query('SELECT value FROM document_extra_vars WHERE module_srl = ? AND eid = ?', [(int)$module_srl, 'area']);

    $result = $stmt->fetchAll();

    }

  • profile profile

    답변 주신대로 적용 해보니 완전 잘 작동 합니다 :)

     

    스킨에서 db_name,db_id, db_pw 등을 직접 입력해서 사용하려니 깨름찍 한것도 있었고...

    디비 비번만 바꿔도 스킨 파일 수정하느라 귀찮았었는데... 이렇게 바로 쿼리하는 방법이 있었군요!!

    역시 갓 기진님.. 감사합니다.!!

     

     

    good.png