워드 프레스 템플릿으로 에버노트 대신하기
에버노트를 한 5년정도 잘 사용했었다. 작년에 에버노트의 내용을 백업하기 위해 database에 접근했으나, 에버노트 제작사에서 접근을 허용하지 않았다. 관련 프로그램들이 있었으나, 잘 되지 않았고, 데이터가 너무 많은지 파일을 받는데 한계가 있었다. 내가 만든 데이터인데 내가 제대로 소유를 못하고 있다고 생각하니 씁씁했다. 이번 기회에 에버노트를 떠나기로 하고, WordPress로 만든 블로그에 에버노트를 대신할 기능을 추가했다. 기능은 부족하지만, 나름 써보니 괜찮은 듯 하다. 텍스트는 어느 정도 입력, 조회, 수정이 가능했었고, 오늘 몇번의 시행착오 끝에 한개의 사진을 추가 가능하도록 했다.
페이지로 php를 제공하는 템플릿 만들기
워드프레스는 기본으로 php를 사용할 수 없다. 다행히? 사용자가 page에서 템플릿을 만든다면 사용할 수 있다. 작업을 조회/수정/입력하는 템플릿을 3개를 만들었다.
작업 조회하는 php
이 템플릿은 mysql에 접근하여 완료되지 않은 작업을 표시한다. 사용자가 작업을 추가할 경우, 그룹ID를 할당하는데, 이 그룹ID를 기준으로 작업을 표시한다. mysql의 database는 두 개를 만들었는데 하나는 작업 내용이고, 하나는 이미지 파일의 경로이다. 조회를 눌렀을 때, grpId로 그림의 경로가 있으면 이를 화면에 표시한다.
wordpress 설치 디렉토리 중 wp-content가 내용을 담당하고 있다. 사용하는 theme의 경로로 이동한 다음 다음 3개의 파일을 만들었다.
myJob.php, myJobInsert.php, myJobModify.php
아래 Template Name을 원하는 내용으로 변경하고 page를 만들 때 이를 선택하면 해당 파일의 php 기능을 사용할 수 있다.
<?php /* Template Name: myJob*/ ?> <?php get_header(); ?> <div id="main-content" class="main-content"> <?php if ( is_front_page() && twentyfourteen_has_featured_posts() ) { // Include the featured content template. get_template_part( 'featured-content' ); } ?>
대략 아래와 같이 작업을 한다.
1. 로그인이 되어 있는지 확인
2. mysql user와 password를 시스템에서 읽어옮
3. 데이터 베이스에 연결
4. query를 날림..쿼리는 대략 다음과 같이 했다.
$query="select * from (select * from (select* from `workList` order by `id` desc, `업데이트일` desc) as target group by `grpId`) as target2 where year(`완료일`) = '0000' order by `마감일` asc";
php에서 template table을 만들 수 있으나, 셰션이 끊기면 임시 테이블도 없어진다. 귀찬고 데이터도 얼마 되지 않아 select를 중첩했다.
5. query의 결과를 html로 표시해 주는 부분
6. 이미지가 있으면 이미지도 같이 표시
작업을 입력하는 php
이 템플릿은 그룹ID를 할당하여 작업을 입력한다. 오늘 사진도 한장 입력을 할 수 있도록 수정했다. submit 버튼을 누르면 가장 마지막의 GrpId로 오늘 날자를 업데이트 날자로 하여 새로 항목을 만든다. 파일을 업로드 했다면, 파일 경로를 내용에 대한 데이터와 연결한다.
템플릿은 위와 같은 방법을 만들었다. html에서 form을 설정하여 해당 내용을 $_POST로 데이터 베이스에 변수로 들어가도록 했다.
1. 로그인 확인 및 데이터베이스에 연결
2. 가장 마지막의 grpId를 확인
3. +1을 하여 사용할 grpId로 설정
4. 오늘 날자, 오늘 날자+14일을 확인하여 업데이트일, 목표일로 자동 설정
5. form으로 해당하는 내용을 표시
6. 이미지를 입력할 경우, 파일 이름과 경로를 설정
7. 사용자가 submit 버튼을 누르면 내용과 이미지의 경로를 데이터베이스에 입력하고, 이미지를 설정한 경로에 업로드
작업을 수정하는 php
조회된 작업 중, 수정을 원하는 부분이 있으면 grpId를 확인해야 한다. 작업을 수정한는 페이지에서 Id를 입력하여 내용을 표시한 다음, 내가 원하는 내용으로 업데이트한다. 조회 버튼을 눌렀을 경우, 가장 나중에 작업된 내용이 표시된다.
https://youtu.be/oVLF5c8Hl3s