2012-02-01 2 views
1

저는 LessDrupal을 사용하고 있습니다. 관리자 사용자가 특정 사이트 요소에 대한 색상을 전체적으로 정의 할 수있게하고 싶습니다. 명확히하기 위해, 우리는 특정 유형의 콘텐츠를 "레벨"이라고 부르고 관리자는 사이트에 수준을 추가 할 수 있습니다. 각 레벨은 특정 div 등의 테두리 색상이 될 연관 색상을 가져야합니다. 관리자가 CMS를 통해 색상을 설정하고이를 외부 스타일 시트에 반영 할 수있게하고 싶습니다.Less CSS 파일을 사전 처리 할 수 ​​있습니까?

DOM의 모든 영향을받는 요소는 클래스별로 인덱싱됩니다. 내가 생각할 수있는 유일한 것은 Drupal에 의해 동적으로 생성되는 Less 나 CSS 파일을 가져 오기위한 Less Less 파일에있다. 난 단지 내가 누락 된 부분이 없는지 확인하고 싶다. 예를 들어 적은 파일에서 PHP를 인라인하고 PHP가 브라우저 나 서버 측 컴파일러로 전달되기 전에 실행되도록하는 방법이 필요하다.

+1

덜 필요합니까? Less 스타일 시트를 일반 CSS와 쉽게 혼합 할 수 있습니다. –

+0

이미 컬러 모듈을 사용해 보셨습니까? – chrisjlee

답변

0

이 방법을 사용하면 수백 개의 (또는 잠재 고객이 무엇이든간에) 생성 된 .less 파일로 끝납니다. 그것이 당신이하고 싶은 접근법인지 확실하지 않습니다.

사용자가 색상을 정의하고 db에 저장하게하고 사용자가 로그인하면 자신의 설정을로드하고 단순히 header.php (또는 Drupal의 모든 페이지에로드되는 유사한 파일)에 포함 된 CSS 코드를 생성합니다.

<?php if ($user->logged_in) { ?> 
<style type="text/css"> 
    .header { 
    background-color: <?php echo $background-color; ?>; 
    color:   <?php echo $header-color; ?>; 
    } 
    .content { 
    ... 
    } 
    ... 
</style> 
<?php } ?> 

.. 나머지 스타일은 덜 파일에 정의되어 있습니다.

기본 사용자 (로그인하지 않은 사용자)는 LESS 파일에서 정의한 이러한 요소의 기본 색상을 가져옵니다. 위의 코드는 단순히 덮어 씁니다 (따라서 아래에 을 삽입해야 주 스타일 시트라고 부릅니다).

이렇게하면됩니다.

+0

사용자가 변경 한 내용은 관리자를위한 것이며 사이트를 전 세계적으로 변경 한 것입니다. 사용자별로 사용자별로 아무것도 없습니다. 기본적으로 우리는 코드를 색칠하는 "레벨"이라고 부르는 콘텐츠 유형을 가지고 있으며, 사용자 (관리자)가 시스템에 추가하는 새로운 레벨과 관련된 색을 설정할 수있게하려고합니다. – selfsimilar

관련 문제