KTH
라이믹스 기능 개발 #1 (글작성) 본문
본저자는 한번에 모든 내용을 담기 힘드므로 내용은 순서대로 작성될 예정입니다.
본 저자는 앞으로 아래의 디렉토리 위치 표기를 . 기준으로 파일위치 기반하여 설명 하겠습니다.
. 은 라이믹스가 설치된 경로입니다.
본저자는 아래와 같은 시스템으로 개발 진행 하였습니다.
NGINX / PHP / MariaDB
DB컬럼을 이용한 기능 구현시 수정해야 될 파일들
# 다국어별 출력할 메시지 설정
./common/lang/ko.php
./common/lang/en.php
# 컬럼생성 후 게시판 글 추가,수정 시 지정된 컬럼에 내용을 저장하기 위해 설정 필요
./modules/document/schemas/documents.xml
# 컬럼생성 후 게시판 글 추가 시 설정 필요
./modules/document/queries/insertDocument.xml
# 컬럼생성 후 글 쓰기,수정시 내용을 불러오기 위한 함수 생성 필요
./modules/document/document.item.php
글 작성에 앞서 각각 목적에 맞게 파일을 수정하여야 함을 알려드립니다.
또한 게시판에서 글 불러오는 과정에서 칼럼 추가내용이 없거나 하면 오류가 발생하므로 주의 바랍니다.
< 컬럼 생성 >
MySQL 컬럼추가
alter table [테이블명] add [컬럼명] [타입] [옵션];
ex) alter table [테이블명] add [컬럼명] varchar(100) not null default '0';
라이믹스에서 게시판과 관련된 데이터가 저장되는 테이블은 rx_documents 입니다.
Query > alter table rx_documents add product_youtube_link longtext null;
MariaDB [wms]> desc rx_documents;
+----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+-------+
| product_youtube_link | longtext | YES | | NULL | |
+----------------------+--------------+------+-----+---------+-------+
39 rows in set (0.00 sec)

< PHP 파일 수정 >
# 컬럼생성 후 게시판 글 추가,수정 시 지정된 컬럼에 내용을 저장하기 위해 설정 필요
./modules/document/schemas/documents.xml
<table name="documents">
<column name="product_youtube_link" type="bigtext" default="" />
</table>

39번줄 처럼 생성한 컬럼에 맞춰 PHP파일에 컬럼을 등록시켜 줍니다.
# 컬럼생성 후 게시판 글 추가 시 설정 필요
./modules/document/queries/insertDocument.xml
<query id="insertDocument" action="insert" priority="LOW">
<tables>
<table name="documents" />
</tables>
<columns>
<column name="product_youtube_link" var="product_youtube_link" />
</columns>
</query>

43번줄 처럼 생성한 컬럼에 맞춰 PHP파일에 컬럼을 등록시켜 줍니다.
# 컬럼생성 후 글 쓰기,수정시 내용을 불러오기 위한 함수 생성 필요
./modules/document/document.item.php
function getProductYoutubeLinkText($strlen = 0)
{
if(!$this->isExists())
{
return;
}
if(!$this->isAccessible())
{
return lang('msg_is_secret');
}
$product_youtube_link= $this->get('product_youtube_link');
$product_youtube_link= preg_replace_callback('/<(object|param|embed)[^>]*/is', array($this, '_checkAllowScriptAccess'), $product_youtube_link);
$product_youtube_link= preg_replace_callback('/<object[^>]*>/is', array($this, '_addAllowScriptAccess'), $product_youtube_link);
if($strlen)
{
$product_youtube_link= trim(utf8_normalize_spaces(html_entity_decode(strip_tags($product_youtube_link))));
$product_youtube_link= cut_str($product_youtube_link, $strlen, '...');
}
return escape($product_youtube_link);
}

위 사진처럼 글 등록 후 출력, 수정시 내용을 불러오기 위해 함수를 생성합니다.
< HTML 파일 수정 >
게시판 스킨마다 수정해야할 HTML 파일이 다를 수 있습니다.
코드를 어떻게 추가해야 하는가에 대해서만 다루겠습니다.
{$oDocument->getProductYoutubeLinkText()} 부분이 앞서 생성한 함수에 의해 기존값을 불러오는 코드입니다.
이것을 이용하여 실제 유튜브 동영상을 출력하는 것이 가능하게 됩니다.
이기능 구현은 추 후 심화과정에서 다루도록 하겠습니다.
< 언어 파일 수정 >
# 다국어별 출력할 메시지 설정
./common/lang/ko.php
제목
$lang->video_youtube = '유튜브 동영상';
입력란에 출력할 문자열
$lang->input_youtube_video= '동영상 링크를 입력해 주세요.';

< 최종화면 >

DB 컬럼에 저장된 데이터
MariaDB [wms]> select product_youtube_link from rx_documents;
+---------------------------------------------+
| product_youtube_link |
+---------------------------------------------+
| https://www.youtube.com/watch?v=_oRaN3zkv-w |
+---------------------------------------------+
1 row in set (0.00 sec)
라이믹스 기능 개발 #1 (글작성) 편은 이렇게 마무리 하겠습니다.
끝까지 읽어 주셔서 감사합니다 ~!
'웹 프레임워크 > 라이믹스' 카테고리의 다른 글
| 라이믹스 기능 개발 #3 (목록 설정) (0) | 2021.05.14 |
|---|---|
| 라이믹스 기능 개발 #2 (글수정) (0) | 2021.05.14 |