PHP 9

Pintura + Filepond + PHP 이미지 멀티 업로드 및 편집

https://pqina.nl/pintura/ Pintura Image Editor, a Powerful JavaScript Image Editor SDK A powerful JavaScript Image Editor that integrates with every stack. Fully configurable and works intuitively on every device. pqina.nl 이미지를 직접 하나씩 편집하는 경우는 Pintura 를 사용하고, 멀티파일 업로드 및 멀티파일 업로드와 이미지 편집을 하는 경우는 Pintura + Filepond 를 사용하여야 한다. 처음 공식 메뉴얼을 보면 뭐가 뭔지 알수 없는데, Pintura 는 웹 이미지(동영상) 편집기이고, 파일 업로드 처리는 다른 자..

PHP 2023.06.23

고도몰5 Pro DBTableField 자동 생성 - ChatGPT

기존에 information schema 를 참조하여 DBTableField.php에 매핑 함수를 추가하는 스크립트를 만들었습니다. https://devpain.tistory.com/10 고도몰5 Pro DBTableField 자동 생성 고도몰5 기능을 확장하다보면, 테이블을 추가해야 하는 경우가 생기는데, \Component\Database\DBTableField.php 파일에 테이블 스키마를 구성해야 한다. 테이블 컬럼 형태에 맞춰서 $arrField 를 구성해야 하 devpain.tistory.com 오늘 ChatGPT를 사용하여 동일한 기능을 수행하는 프롬프트를 작성하였습니다. 기존 방식도 복잡한 코드가 아니었었습니다. 사전작업과, 테스트, 검증 절차 때문에 작업시간이 대략 2시간정도 걸렸습니다...

PHP/고도몰 2023.04.09

고도몰5 에서 상품별로 배송비를 별도 책정하는 방법

현재 사용자가 상품을 직접 등록하는 오픈마켓 서비스를 고도몰5 Pro 로 개발중입니다. 사용자 직접 중고물품을 등록하다 보니, 상품별로 배송비가 달라질수 밖에 없습니다. 고정배송비로 동일하게 적용하는게 어렵습니다. 고도몰5 은 잘(?) 설계된 DB구조를 가지고 있기 때문에 특정 값 하나라도 임으로 입력하게 되면(야매기술x) 다른 기능에서 오류가 발생될수 있습니다. 최대한 고도몰5 이 원래 설계한 방식을 적용하는게 좋습니다. 여러가지 방법을 고민해봤지만, 상품별로 배송비를 별도로 책정하기 위해 다음과 같이 처리할 예정입니다. - 사용자의 배송비는 100원 단위로 입력 - 사용자가 입력하는 배송비는 다양하지만, 보통 한번 입력한 값 범위에서 변경되는 경우는 많지 않음 - 사용자가 직접 입력함으로 기본(def..

PHP/고도몰 2023.04.06

고도몰5 사용자 상품 등록 기능 개발시 주의점

현재 고도몰5Pro 를 커스텀하여 구매자 - 판매자 형태의 쇼핑몰을 개발중입니다. 고도몰은 기본적으로 공급사(무료사용)기능이 있어, 이를 수정하면 됩니다. 문제는 공급사 관련기능이 관리자 페이지에 있는것입니다. 가장 먼저 개발하는것은 일반 사용자가 공급사 기능을 사용할수 있도록 공급사로 전환시키는 작업입니다. 이 기능은 사용자 순번과, 공급사의 순번 정보, 공급사 관리자 테이블 등에 필드를 추가하고 기능을 추가함으로써 구현이 가능합니다. 최근 셀러(공급사)가 상품 등록을 처리하던중에 , 사용자가 상품 주문시 셀러(공급사) 등록한 상품의 재고가 차감되지 않는 상태로 남아있는 버그가 발견되었습니다. 문제 해결을 위해 코드를 수백번(ㅠ.ㅠ) 실행 시켜본 결과 다음과 같은 문제임을 확인하였습니다. 옵션 정보가 ..

PHP/고도몰 2023.03.14

고도몰5 Pro DBTableField 자동 생성

고도몰5 기능을 확장하다보면, 테이블을 추가해야 하는 경우가 생기는데, \Component\Database\DBTableField.php 파일에 테이블 스키마를 구성해야 한다. 테이블 컬럼 형태에 맞춰서 $arrField 를 구성해야 하는데 이게 은근 귀찮은 작업이고, 실수하면 사이드 이펙트를 일으키고, 해당 오류를 찾기가 어렵다. 고도몰의 phpmyadmin 이 information_schema 를 참조할수 있도록 하고 있고, 테이블 스키마 정의는 infomation_schema db에 기록되어 있다. 이를 이용하여, 쿼리로 테이블에 대한 $arrField 생성하도록 해보았다. set GROUP_CONCAT_MAX_LEN = 10000000; select concat('$arrField = [', gr..

PHP/고도몰 2023.01.14

고도몰5 에서 쿼리 로그 디버깅

고도몰5 특유의 폐쇄성으로 내부 코드를 모두 확인할수 없습니다. 고도몰5 소스를 분석하다보면, 은 CI3.0 + Templete_ 를 커스텀하여 개발한것으로 추정됩니다.(가비아 퍼스트몰도 동일) 분명 CI3.0 엔 디버깅을 위한 로깅 기능이 있는데, 고도몰5 개발시에 이를 활용할수 있다면, 많은 잇점이 있겠지마, 고도몰5 에선 애초에 이 기능이 모두 막혀 있거나, 소스상에 노출되어 있지 않아 사용이 불가능합니다. 그중 제일 짜증나는게 쿼리 로그입니다. 고도몰5는 커머스 솔루션의 특성상 테이블이 많고, 컬럼수도 많고, 테이블구조와 의존관계가 복잡합니다. (테이블과 테이블 컬럼에 주석을 달아둔건 정말 칭찬합니다. 빠짐없이 들어간거 개발팀에 감사드립니다.) 실행된 쿼리로그만 추적할수 있어도 기능 개선과 추적이..

PHP/고도몰 2023.01.11

고도몰5Pro 카카오톡 공유(kakao) 오류 ErrorCode(4002)

고도몰 메인의 위젯은 사용자 추적관리를 위한 mtn 이라는 파라메타를 url 에 추가함 (예시. http://godomaill.com.com/goods/goods_view.php?goodsNo=100&mtn=12월정기^세일) mtn 파라메타가 위젯에 대한 제목이라서 특수문자가 들어갈수 있음. 카카오톡 공유시 mtn 파라메타의 특수문자로 인해 카카오톡 공유 오류 발생 ErrorCode(4002) 이 오류는 도메인 불일치 오류로 카카오 개발자 센터에서 설정한 값이 틀린경우 보통 발생함. 도메인 불일치 뿐만 아니라 공유 url에 특수문자가 들어가는 경우에도 발생할수 있는것임. (설명좀 적어두지..-_-) ps) OrderViewController 를 오버라이딩해서 mtn 파라메타를 정규식으로 제거해서 해결함...

PHP/고도몰 2022.08.02

퍼스트몰에서 DB 로그를 확인하는 방법

퍼스트몰 db query 로깅 퍼스트몰에서는 개발 가이드나, 메뉴얼이 없는것 같다. 1. 코드에 간단하게 추가하여 사용 print_r($this->db->queries); 실행하여 실행된 쿼리 출력 쿼리가 실행 안된 경우에는 쿼리다음에 print_r($this->db->error()) 를 사용해본다. 2. 로그파일에 기록하는 방식 일반적인 로깅에도 사용 app/config/config.php 에 로깅 관련 설정 수정// 2이상으로 하는 경우 다른 로깅정보가 많이 출력됨으로 error로 조정하여 사용 // 로깅을 사용 안하는 경우 0으로 변경 $config['log_threshold'] = 1; // 후이즈몰의 쓰기 가능한 로그 폴더는 /data/logs $config['log_pat..