2010-08-13 5 views
1
을 기반으로 색 구성표 변경

웹 디자이너는 사이트의 다양한 섹션에 다른 색 구성표가 필요한 Drupal 웹 사이트의 디자인을 만들었습니다. 드루팔 (Drupal은 기본적으로이 디자인 요구 사항을 지원하지 않습니다.Drupal : 노드

현재 JavaScript를 사용하여 페이지 제목을 기반으로 색 구성표를 변경하고 있습니다. 일부 콘텐츠 페이지를 추가 한 후에는 이제 이것이 일을하는 끔찍한 방법임을 알게되었습니다. 내용에 따라 색 구성표를 변경하는 더 좋은 방법에 대한 아이디어가 필요합니다.

노드 값에 따라 페이지에 다른 테마를 적용 할 수 있습니까? 테마 유지 관리가 더 어려워 지지만 각 색상 구성표에 대해 내 테마의 약간의 변형을 만들 수 있습니다.

CCK를 사용하여 내 페이지 콘텐츠 형식에 필드를 추가 한 다음 해당 사용자 지정 필드를 기반으로 색 구성표를 변경하는 방법에 대해서도 생각해 보았습니다. 이렇게하면 모든 새 페이지마다 자바 스크립트에 코드를 추가 할 필요가 없습니다.

페이지 당 색 구성표를 변경하기위한 모듈이 있습니까?

답변

2

ThemeKey module을보고 싶은데 노드 유형이나 경로와 같은 조건에 따라 어떤 테마가 사용되는지 확인할 수 있습니다.

+0

답변으로 표시 하겠지만 실제로 페이지/노드가 구성되는 방식이므로 섹션 모듈을 실제로 사용했습니다. – rsrobbins

1

노드 또는 다른 기준에 따라 hook_preprocess_page 함수에 일부 CSS를 추가하고 페이지 템플릿에 CSS를 포함 스타일로 추가 할 수 있습니다.

아이디어는 JavaScript로 작성하는 것과 같지만 필요한 작업을 수행 할 수있는 PHP, drupal 등을 갖게됩니다. 노드 유형 또는 노드 오브젝트에 설정 한 값을 테스트 할 수 있기 때문에 훨씬 쉽습니다.

0

CSS module은 노드 별 CSS이므로 색상을 조정할 때 사용할 수 있습니다.

0

테마에 hook_preprocess_page를 구현하고 표시되는 노드 유형 (또는 유형)에 따라 본문 클래스를 적용하는 것이 좋습니다. 또는 잠재적으로 이러한 클래스를 표시하기 위해 노드의 사전 프로세스에 넣으십시오. 당신이 '프로젝트'노드를보고있는 경우에 따라서, 예를 들어, 넣어 :

<body class="... node-type-project">... 

그런 다음 디자이너가 몸이 가지고있는 클래스를 기반으로 스타일을 타겟팅 할 수 있습니다. 이것은 매우 쉽습니다. "node-type-". strreplace("_", "-", $node->type) 이후 노드 유형을 클래스로 변경하면 본문이나 노드로 전달됩니다.

관련 문제