2014-06-23 3 views
0

이 페이지에서와 같이 라이브 스타일 및 스크립트 전환기를 어떻게 만듭니 까? http://www.momizat.com/theme/goodnews/?PHP와 쿠키가있는 CSS 스위처?

방문자가 페이지의 모양 (CSS)과 메뉴 막대 (jquery)의 효과를 쉽게 변경할 수 있도록 패널을 제공합니다. 방문자가 다른 페이지로 이동할 때 사용자 지정 내용이 대상 페이지에로드 된 상태로 유지되도록 쿠키와 함께 결합됩니다.

내 사이트에이 기능을 적용하여 방문자가 한 가지 스타일로 지루하지는 않지만 취향에 따라 다를 수 있습니다.

모든 대답은 매우 감사하겠습니다. 감사합니다 ...

+0

코드를 작성하는 것이 좋습니다. 사용 가능한 스타일 목록을 제공하고, 선택을 요구하고, 선택 사항을 쿠키로 설정합니다. –

+0

우리는 프로그래밍을 가르치 려하지 않습니다. 코드를 작성해야합니다. 우리는 코드를 수정하려고 노력할 것입니다. –

+0

감사합니다, 당신은 똑똑한 소년입니다 – bl4ckbox

답변

3

나는 당신의 예제 페이지의 구현에보고하지 않은,하지만 대부분의 사이트가이 방법을 사용합니다 : 사용자가 테마 스위처 버튼을 클릭하면

    • 세트 쿠키
    • 의 새로운 값은 CSS가 재치를 시작했습니다의 body 태그 (즉, 클래스 = "THEME1") 모든 주제에 대한
  • 에 특정 클래스 이름을 추가 해당 클래스 이름 (예 : body.theme1 p { color: red; })
  • 사용자가 페이지를로드 할 때 쿠키를 읽고 그에 따라 클래스 이름을 설정하십시오.
+0

또는 테마를 다른 스타일 시트에 넣고 default.css 대신 제공하십시오 – colburton

+0

@colburton - 사실 ... 테마가 얼마나 다른지에 따라 달라집니다. 배경색과 텍스트의 색상을 전환하는 경우 클래스 기반으로하는 것이 더 좋습니다. 그들이 실질적으로 다른 경우 접근 방식이 훨씬 더 좋을 수 있습니다. – Steve

+0

답변에 대한 평론가가 될 의도가 아니 었습니다. 선택의 여지가 OP를위한 또 다른 옵션,하지만 그 자체가 다른 대답을 가치가 ;-) – colburton

0

좋아, 당신은 PHP와 함께이 작업을 수행하려면 :

0) 첫째, 세션은 모든 페이지에 시작해야합니다 또는 하나가 쿠키를 시작하려면이 세션을 시작해야하기 때문에 작동하지 않습니다 또는 다음 페이지에서 액세스하십시오.

<?php session_start(); ?> 

1) 당신은 HEAD 태그에 시작하는 PHP 스크립트를 작성해야 :

<?php 
if (isset($_REQUEST['theme'])) { $_REQUEST['theme'] = $css1; echo "<link rel='text/stylesheet' href='path/to/{$css1}.css'>"; 
    else echo "<link rel='text/stylesheet' href='path/to/default.css'>"; 
?> 

이제 '테마'설정라는 매개 변수의 값을 가지는 쿠키가 있으면 좋아요 이 매개 변수는 default.css 대신 css 파일로 제공됩니다.

2) 이제 드롭 다운 양식을 통해 테마를 전환 할 수있는 옵션을 사용자에게 제공해야합니다.

<?php 
echo "<form name='myForm'><select onchange='this.form.submit()' name='theme'>"; 
echo "<option value='theme1'>Theme 1</option>"; 
echo "<option value='theme2'>Theme 2</option>"; 
echo "</select></form>"; 
?> 

참고 : 실제로이 코드를 실행하지는 않았지만 오류가있는 것은 확실하지만 그 방법에 대한 일반적인 개요입니다.

문제를 해결하려면 양식이 제출되고 있는지 확인하십시오. print_r($_REQUEST);을 사용하여 문제 해결을 위해 쿠키 내용을 덤프 할 수 있습니다. 그런 다음 CSS 파일의 경로가 올바른지 확인하십시오. 마지막으로 일단 모든 기능이 작동하면 캐시 된 CSS 파일에서 잘못된 결과가 나오지 않도록하십시오. 예를 들어 크롬에서는 매번 페이지를 완전히 새로 고치는 "Inspect Element"개발자 도구를 열 수 있습니다.