Gallery

http://gallery.menalto.com/

3.0 버전이 있길래 써보고 있는데 일단 깔끔하다.

무엇보다 번역 시스템이 혁신적인데, 언어 설정에서 번역 상태로 바꾸면 모든 페이지마다 하단에 번역칸이 뜨고 현재 화면에 있는 문장들을 번역해서 자체 저장해 바로 확인하고, 서버에도 보내어 동기화할 수 있다. 사용자가 직접 번역에 참여하기 쉽고 그걸 개발자에게 보내기도 쉽다.
다만 Ajax를 통해 나타나는 화면은 번역칸의 적용을 받지 않는데 이건 어떻게 할지 모르겠다.

사진 관리 방식은 실제 디렉토리 구조를 그대로 앨범으로 취급하는 것으로 보이는데, 이 때문에 Flickr에 비해 세트나 풀과 같이 하나의 사진을 여러 묶음에 넣을 수 없다는 단점이 있다. 이 점에서 Picasa의 구조와 비슷한 것으로 보인다.

설정

패키지 디렉토리 안에 var를 만들고, DB를 설정하고, 사용자별 권한 부여에 쓰일 mod_rewrite를 잡아주는 정도면 설정은 끝난다. 설치나 사용 단계에서 서버에 특정 설정이 필요하면 그 내용을 그때그때 친절하게 알려준다.

그림 파일 작업을 위해 세 가지 도구를 지원한다. GD, ImageMagick, GraphicsMagick인데, 이 중에 특별히 뭘 권장한다거나 하는 얘기도 없고 뭘 쓰면 뭐에 비해 기능이 안 된다거나 잘 된다거나 하는 얘기도 안 보인다. 일단 기본으로 잡히는 ImageMagick를 쓰고는 있다.

모듈

모듈 중에 Server Add라고 서버상의 경로를 지정해두면 거기에 있는 사진을 직접 추가해주는 기능이 있다. 결과 메시지에 앨범 단위로도 추가가 된다는데 아마 디렉토리 단위로 처리를 해주는 게 아닐까 싶다. 중간중간 이벤트마다 앨범 단위로 추가하는 데도 좋겠고 대량으로 앨범을 만들어야 하는 초기 이전 단계에도 유용할 것 같다. (시험 삼아 13기가 정도를 준비하고 실행해 봤는데 거의 하루종일 걸려서라도 제대로 수행을 마치는 걸 확인했다.)
FIXED 다만 한글로만 된 디렉토리와 파일의 경우 웹 주소로 부여할 slug을 뽑을 때 alnum-_만 허용하기 때문에 ORM Validation 단계에서 slug 값이 비었다고 실패한다. 직접 추가할 경우 인터페이스 단계에서 불허하기 때문에 상관 없지만, 이게
  • 기본 모델 클래스에서 예외를 잡아서 slug 변수가 비었을 경우 임의로 생성해서 채워주면 될 문제인지
  • 혹은 기본 모델이 아니라 Server Add 모듈에 포함된 클래스에서 처리해줘야 할 문제인지
  • 혹은 hangul_slug 모듈 같은 게 등장해서 한글을 알파벳으로 바꾸어줘야 할지 (상당히 큰 작업이고 한국어 사용자에게만 의미가 있는 상당히 좁은 영역이긴 하지만)
  • 아니면 아예 slug 자체가 한글 등도 허용하도록 바뀌어야 할지 모르겠다. 이에 대해선 URL 문법규칙에 속하는 문자만 제외하려다가 아예 alnum-_만 허용하겠다는 얘기가 나오는 글은 봤다.
modules/server_add/controllers/server_add.php:236의 save() 호출 안에서 에러가 난다. 이 단계에서 slug를 채워주면 될 것으로 보인다. 비슷한 기능을 하는 건 modules/gallery/models/item.php:377의 rand() 호출로, name이나 slug이 겹칠 경우 원래 이름에 임의로 값을 추가해주는 부분이다. 메인 모듈에 겹침 처리가 있으면 비었을 때도 처리해주면 안 되나? item.php:333:item::save()에서 slug가 비었을 경우 name에서 가져와 AZaz09-_가 아닌 것들을 -로 바꾼 뒤 -를 없애도록 되어 있다. 이 부분에서 결국 아무 것도 안 남게 되는데... 완전히 비었을 경우에 대한 처리를 해주면 되는 걸까? 그냥 아무 값이나 넣어서 validate를 통과하게 해주면 중복 처리 부분에서 처리를 해주는 걸까? 그렇다. - 근데 지금 보니 git 버전에는 이미 정확히 같은 증상을 위해 주석까지 들어가서 rand()으로 채우도록 고쳐져 있네. -_-;

지도 기능을 찾아보니 tagsmap 모듈이 있는데 동작 방식이 예상과 조금 다르다. 사진 자체에 좌표를 붙이는 게 아니라 사진에 붙은 태그에 좌표를 붙이는 식이다. 태그 대상을 사진 대상으로 작동 방식만 바꾸는 건 어렵지 않을 텐데 굳이 이렇게 만들어놓은 건 DB 구조 같은 데 제한이 있기 때문인가?

구글 애널리틱도 모듈이 있어서 식별번호만 넣어주면 잘 동작한다.
Comments