SW 개발

piwigo 특정폴더 앨범 생성하지 않기

. . . 2014. 2. 14. 09:15
반응형
  • 마크다운변환 : 20190905

piwigo 를 사용하다가 필요한 기능이 있어서 소스코드를 약간 수정한 내용을 정리

PIWIGO 를 통한 사진관리시 필요한 사항발생

piwigo 를 통해서 사진을 관리하다보면 다음과 같은 희망사항?이 존재한다.

  • 내가 포토샵한 결과물만 갤러리로 생성하고싶다.
  • 같은폴더에 포토샵하기전의 원본 파일들을 보관하고 싶다.

위와같이 사진을 관리하려면 다음과 같은 구조로 관리하면된다.

[사진폴더]
  ㄴ [backup]
          ㄴ 원본사진1.jpg
          ㄴ 원본사진2.jpg
          ㄴ 원본사진3.jpg
         ㄴ 원본사진4.jpg
  ㄴ 포토샵한사진1.jpg
  ㄴ 포토샵한사진2.jpg
  ㄴ 포토샵한사진3.jpg
  ㄴ 포토샵한사진4.jpg

그럼... backup 폴더에는 원본사진을 넣어두면 언제든지 원하는 사진을 포토샵을 다시 할수도있고 혹은 raw 파일들을 관리하기도 쉽다.

piwigo 에서는 backup 폴더를 앨범생성을 하지 않으면 원하는 동작 OK

PIWOGO 에서 특정 폴더 스킵하기

piwigo 소스에서 폴더를 스캔하는 부분을 특정 문자열일때 스킵하게 하면된다. piwigo 에서 폴더 스캔하는 부분은 다음의 파일이다.

/admin/site_update.php

위의 소스코드에서..

basename 함수 위에 다음의 내용을 추가한다.

  • http://xenostudy.tistory.com/415
    • 위의 포스팅대로 piwigo 한글 관련 패치를 했다면 getbasename 함수 다음에 내용추가

특정 폴더이름의 경우 폴더 탐색 스킵..

    $backup_str = strstr($fulldir, "backup");
    if ($backup_str)
        continue;

위의 내용을 실제로 소스코드에서 적용하면 다음과 같다.

  foreach (array_diff($fs_fulldirs, array_keys($db_fulldirs)) as $fulldir)
  {
    $dir = getbasename($fulldir);
    $backup_str = strstr($fulldir, "backup");
    if ($backup_str)
        continue;
    if (preg_match($conf['sync_chars_regex'], $dir))
    {
      $insert = array(
        'id'          => $next_id++,
        'dir'         => $dir,
//... 생략...


  foreach (array_diff(array_keys($fs), $db_elements) as $path)
  {
    $insert = array();
    // storage category must exist
    $dirname = dirname($path);
    if (!isset($db_fulldirs[$dirname]))
    {
      continue;
    }
    $filename = getbasename($path);
    $backup_str = strstr($path, "backup");
    if ($backup_str)
        continue;
    if (!preg_match($conf['sync_chars_regex'], $filename))
    {
      $errors[] = array(
        'path' => $path,
        'type' => 'PWG-UPDATE-1'
        );

      continue;
    }
//.. 생략 ..

이때 "backup" 부분을 사용자 입맛에 맞게 고치면 자동으로 해당폴더는 스킵된다. 참고로 설정한 하위폴더는 아예 탐색을 하지 않는다.

실제 갤러리 생성결과를 보면..

즉... 아래의 파일구조에서..

[사진폴더]
  ㄴ [backup]
          ㄴ 원본사진1.jpg
          ㄴ 원본사진2.jpg
          ㄴ 원본사진3.jpg
          ㄴ 원본사진4.jpg
  ㄴ 포토샵한사진1.jpg
  ㄴ 포토샵한사진2.jpg
  ㄴ 포토샵한사진3.jpg
  ㄴ 포토샵한사진4.jpg

초록색으로 하이라이트 된 부분만 갤러리가 생성이된다. backup 부분은아예 갤러리 생성이 되지 않는다.

  • 자동썸네일 스크립트 적용해 skip 폴더 와 관련한 내용
    • http://xenostudy.tistory.com/445

위의 포스스팅에서 자동으로 썸네일을 만드는 스크립트를 작성해서 사용할때. 위에서 적용한 갤러리 생성 skip 한 내용을 적용을 해놨다.

반응형