drupal

드루팔의 관리 화면을 예쁘게 : Administration Menu + Rubik테마

제가 현재 블로그로 운영하고 있는 드루팔은 Wordpress나 Joomla에 비해서 관리자 화면이 불편합니다. Wordpress나 Joomla는 관리자 사이트 자체의 레이아웃과 다른 별개의 미려하고 세련된 관리자 패널을 제공합니다. 반면 드루팔의 경우에는 기본적으로 사이트에 설정된 기본 테마를 따라가기 때문에 설정에서 관리자용 테마를 따로 지정하지 않으면 사이트에서 사용중인 레이아웃 내에서 관리를 하게 됩니다.

이러한 점 때문에 드루팔이 강력한 기능에도 불구하고, 처음에 관리화면 들어가면 어디로 가야할지 헤메이게 됩니다. 물론 이는 점차 시간이 지나면 점차 익숙해져 나름 편한 구성이 될때도 있지만, 그래도 미려한 관리화면이 아쉬울 때가 있습니다. 특히 관리 화면에는 많은 컴포넌트가 있는데, 테마를 폭이 작은 테마를 사용할 시에 많은 애로사항이 생깁니다.

물론 맨처음 테마인 Garland 테마를 설정해 놓고 쓰면 되지만, 그래도 이쁜게 좋은거 아니겠습니까. 이번에 소개할 것들은 하나의 모듈과 하나의 테마(정확히는 2개입니다.)입니다. 바로 Administration Menu와 Rubik(+ Tao)테마입니다.

Administration Menu는 관리자 로그인시 화면 상단에 QuickMenu처럼 금방 관리메뉴에 접근할 수 있게 해주는 모듈입니다. 기존 드루팔의 Navigation 메뉴를 사용시, 설정에 들어가려면 최소 2단계 이상의 클릭을 통해 들어가야합니다. Adminiration Menu메뉴는 페이지 제일 상단에 위치하여 커서를 대면 하위메뉴가 나오는 드롭다운를 제공합니다. 이러한 작동을 하는 모듈이 여러개 있으나, Adminiration Menu는 오직 관리자용 메뉴들 노출시켜 줍니다.

howto : Drupal CJK filename dropped.

reason : Drupal is using basename() function on filename extracting. But basename function with php5 is not safe locale. If you use utf-8 encoding on cjk like charset, basename will not work exatly.

solution : First. don't use php5, and use php4.
Second. make locale indepent basename function (ex: drupal_basename() )

1
2
3
4
5
6
7
8
function drupal_basename($path,$prefix = '') {
  $path = preg_replace('|^.+[\\/]|', '', $path);
 
  if ($prefix) {
    $path = preg_replace('|'. preg_quote($prefix) .'$|', '', $path);
  }
  return $path;
}

I changed pattern '|^.+[\\/]|' to '/([^\/]+)\//'.

1
2
3
4
5
6
7
8
function drupal_basename($path,$suffix = '') {
  $path = preg_replace('/([^\/]+)\//', '', $path);
 
  if ($suffix) {
    $path = preg_replace('/'.preg_quote($suffix).'$/', '', $path);
  }
  return $path;
}

And replace three files to use drupal_basename function.
* file.inc
* common.inc
* locale.inc

Reference : http://drupal.org/node/278425

Syndicate content