2011-03-13 5 views
0

저는 정적 HTML 및 CSS 파일을 Drupal 테마로 변환하는 Drupal 6을 사용하고 있습니다. 지금까지 대부분 잘되었습니다. 드루팔 (Drupal 6) 테마에 대해 어떻게 검색 폼을 테마로합니까?CSS 스타일 검색 상자를 Drupal 테마에서 사용하도록 변환 하시겠습니까?

내가 혼동 스럽다면 template.php 파일을 search-theme-form.tpl.php 파일과 함께 사용합니까? 내 style.css 시트를 search-theme-form.tpl.php 파일로 가져올 수 있습니까? 아니면 실제로 내 CSS에 직접 붙여 넣을 수 있습니까?

검색 상자를 여기에 업로드 했으므로 동작 및 모양을 볼 수 있습니다.


#searchwrap { 
    width: 330px; 
    height: 51px; 
    margin-right: auto; 
    position: relative; 
    margin-left: auto; 
    top: 150px; 
} 
#searchboxwrapper { 
    height: 28px; 
    float: left; 
    width: 277px; 
} 
#searchbuttonwrapper { 
    width: 53px; 
    height: 28px; 
    float: right; 
} 
.preload { 
    position: absolute; 
    top: 0px; 
    left: 0px; 
    width: 1px; 
    height: 1px; 
    visibility: hidden; 
    overflow: hidden; 
} 
.searchbox { 
    background-position: top; 
    background-color: #515151; 
    background-image: url('Images/searchbox-shadow.png'); 
    border: 2px #333333 solid; 
    outline: none; 
    background-repeat: repeat-x; 
    height: 20px; 
    margin-right: 3px; 
    float: right; 
    margin-top: 1px; 
    width: 250px; 
    text-indent: 5px; 
    font-size: 10pt; 
    color: #1D1D1D; 
    font-style: italic; 
    font-family: Arial; 
} 
.searchbutton { 
    background: url('Images/go-button.png'); 
    background-repeat: no-repeat; 
    cursor: pointer; 
    width: 53px; 
    height: 28px; 
    border: 0px; 
} 
.searchbutton:hover { 
    background: url('Images/go-button-gifsmooth.gif'); 
    background-repeat: no-repeat; 
    border: 0px; 
} 
.searchbutton:active { 
    background: url('Images/go-button-pressed.png'); 
    background-repeat:no-repeat; 
    border: 0px; 
} 
.searchbox:focus { 
    border: 2px; 
    border-color: #6B6B6B; 
    border-style: solid; 
} 

그리고 HTML :

<div id="searchboxwrapper"> 
    <input name="Text1" type="text" class="searchbox" value="Search Nside Elite" onfocus="if(this.value == 'Search Nside Elite'){this.value = '';this.style.fontStyle='normal';this.style.color='#BFBFBF';}" onblur="if(this.value == '') {this.value='Search Nside Elite';this.style.fontStyle='italic';this.style.color='#222222'}" /> 
</div> 
<div id="searchbuttonwrapper"> 
    <input name="searchbutton" type="button" value="" title="Search" class="searchbutton" /> 
</div> 

은 드루팔 포럼에서 아무도 나에게 하루의 시간을주지 않았 http://nside-elite.techiedesign.net/testsearchform/testsearchform.html

여기 내 원래 CSS입니다. 네가 제공 할 수있는 도움을 주시면 고맙겠습니다. 나는 PHP에 익숙하지 않다.

감사합니다.

답변

0

틀림없이 .tpl.php 파일에서 인쇄 할 변수를 준비하는 template.php를 사용하십시오. 이 경우 search_theme_form 후크에 전처리 함수를 추가하려고합니다. 당신은 어떤 변화가 표시되기 전에 캐시를 삭제하는 것이 좋습니다

function MYTHEME_preprocess_search_theme_form(&$variables) { 
    //do stuff 
} 

: 테마 후크에 새로운 전처리 기능을 첨부하는 것은이 같은 template.php에서 함수를 작성합니다. 여기서 템플릿에 인쇄 할 내용을 추가 할 수 있습니다.

function MYTHEME_preprocess_search_theme_form(&$variables) { 
    $variables['whatever'] = 'hi there'; 
} 

나중에 템플릿에서 print $ whatever를 작성하여 호출 할 수 있습니다. 값을 인쇄합니다. 일반적으로 search_theme_form.tpl.php는 변경하지 않으므로 내 테마에서 재 선언하고 drupal의 기본값을 사용하지 않아도됩니다.

다음은 폼 요소의 바보 레이블을 제거하고 포커스가있는 텍스트 필드의 기본값이 사라지도록하기 위해 search_theme_form에 자체 전처리 기능을 추가하는 예제입니다.

function MYTHEME_preprocess_search_theme_form(&$variables) { 
    unset($variables['form']['search_theme_form']['#title']); 
    unset($variables['form']['search_theme_form']['#printed']); 
    $variables['form']['search_theme_form']['#value'] = 'Search'; 
    $variables['form']['search_theme_form']['#attributes'] = array('onfocus' => "if (this.value == 'Search') {this.value = '';}"); 
    $variables['search']['search_theme_form'] = drupal_render($variables['form']['search_theme_form']); 
    $variables['search_form'] = implode($variables['search']); 
} 

이 질문에 대한 답변과 올바른 방향을 제시하시기 바랍니다.

+0

또한 전처리 기능에서 drupal_add_css()를 사용하여 CSS 파일을 추가하거나 다른 CSS 파일에서 그 스타일을 간단하게 사용할 수 있습니다. 편집 - 문법 – Donnyboy

+0

도움을 주셔서 대단히 감사합니다. 나는 CSS와 template.php를 사용하여 기본 스타일을 덮어 쓰려는 방식으로 텍스트 상자를보고 행동하게했습니다. 제출 버튼과 관련하여 질문이 하나 더 있습니다. 제출 버튼을 변경하고 검색 상자 만 CSS로 스타일을 지정하려면 어떻게해야합니까? 내가 말할 때 사이트의 모든 제출 버튼을 무시하지 않고. 다시 한번 감사드립니다! – Matt

+0

template.php에 CSS와이 스 니펫 f 코드를 사용하여 스타일을 지정했지만, 내 사이트의 모든 버튼을 무시합니다. 원하지 않습니다. 죄송합니다. 주석 문자 허용치를 초과하므로 Google에 코드를 입력해야합니다. – Matt

관련 문제