2009-11-14 3 views
2

빌드하려는 Drupal 사이트에서 로그인 사용자 이름/비밀번호 상자의 크기를 변경하는 방법을 모르겠습니다. 나는 주제를 발견하고, 미적분에 맞는 상자를 갖기 위해 파일을 어디에서 찾을 지 모릅니다 (파일 경로가 매우 유용 할 것입니다).사용자/비밀번호 로그인 상자의 크기 변경

저는 이것이 CSS 솔루션이라고 기대하고 있습니다. 당신은 innovatefortomorrow [dot] org와 내 방화 갓 스크린 샷 http://www.jonrwilson.com/user-login-form.png (이미지 또는 두 개의 하이퍼 링크를 첨부하기에 충분한 평판 포인트가 없습니다)에서 처음으로 사이트를 볼 수 있습니다.

감사합니다.

read this as well! This is an alternative answer!

+0

다른 대답이 더 잘 작동하면 그 때 사용해야합니다. 나는 단지 2 개의 대답이 서로 바뀔 수 없다는 것을 강조하고 싶다. 그 중 하나는 하나의 테마에만 적용되는 솔루션이며, 이는 사용할 모든 테마에 적용됩니다. Drupal이 데이터와 상호 작용할 수 있도록 Drupal 코어에 연결합니다 (예 : 동일한 양식으로 연결된 모듈이있는 경우 동일한 길이의 필드를 만들 수 있음). [당신이 다른 스레드에서 FAPI "쓰레기"라고 불렀을 때, 당신이 드루팔 (Drupal을 배우고 싶다면 자멸적인 태도라고 알고 있습니다. :) – mac

+0

haha, touché! 그렇습니다. 근본적인 차이점을 이해하지 못했지만 여전히 FAPI를 이해하지 못했습니다. 광기 야! devel 모듈은 일부 기능을 지원하지만 여전히 미친 기능입니다. 나는 css-tricks.com을 통해 css에 대해 알고있는 것을 배웠다. 누군가가 Drupal 블로그를 시작하고 모듈을 스크린 케스트에 올려야한다고 생각합니다. 확실히 수요가있다. 나는 방금 설치 한 많은 수의 모듈을 통해 내가 원하는 것을 얻을 수 있기를 바라고 있지만, 나는 카드 하우스를 만들고있는 것처럼 느껴진다. 어쨌든 도와 주셔서 다시 한번 감사드립니다. 너 트위터 야? – Jon

+0

나는 짹짹도 FB도하지 ... 그래서 내가 얻는 가장 "사회"입니다! ;) 시각적 유형으로 Drupal에 대해 더 자세히 알고 싶다면 최근 Drupalcons (워싱턴 DC 및 파리)의 비디오 녹화를 즐길 수 있습니다. 오디오는 때로는 끔찍하지만 꽤 많이 다루어집니다. Drupal dojo는 시원한 Drupal 수업 사이트 였지만 지금은 어떻게 든 죽었습니다. 나는 개인적으로 "Pro Drupal Development"사본을 구입하는 것이 가치가 있다는 것을 발견했습니다. 링크 : http://drupaldojo.com/ - http://drupal.org/node/385952 - http://www.drupalbook.com/ – mac

답변

6

Ok ... Drupal의 가장 흥미롭고 복잡한 기능 중 하나 인 양식 API 또는 - 간결성 - FAPI를 입력하려고합니다. 먼저 몇 가지 이론과 솔루션! :)

Drupal의 모든 양식은 매개 변수로 배열을 허용하는 drupal_get_form() 함수에 의해 작성됩니다. 배열의 각 필드는 기본적으로 양식의 필드이며 각 필드에는 여러 가지 고유 한 특성이 있습니다. 각 필드는 필드의 추가 특성을 정의합니다 (예 : 필수 또는 선택 사항). 예 - 텍스트 필드의 경우 ... 얼마나 커야합니까? 양식 배열의 구조에 대한 자세한 설명은 여기 on the drupal site에서 확인할 수 있습니다.

폼 API의 장점은 폼을 렌더링하는 함수가 빌드 프로세스 중 여러 순간에 여러 가지 후크를 호출하므로 폼을 마무리하기 전에 폼을 "변경"하기 위해 이러한 후크를 구현할 수 있다는 것입니다. 브라우저로 보냈습니다.

양식 변경에 가장 일반적으로 사용되는 후크는 hook_form_alter()hook_form_FORM_ID_alter()입니다. 첫 번째는 drupal 엔진에 의해 처리 된 모든 양식에 대해 실행되며, 후자는 "FORM_ID"라는 특정 양식에 대해서만 실행됩니다. 양식 API의 내부 작업에 대한 자세한 내용은 알지 않지만 here you can read more.

귀하의 구체적인 경우, 귀하가 Drupal과 함께 제공되는 표준 "사용자 차단"을 사용하고 있다고 가정합니다. 이 경우 당신이 유사한 형태로 hook_form_FORM_ID_alter()를 구현하는 제안이 도움이

mymodule_form_user_login_block_alter(&$form, $form_state) { 
    $form['pass']['#size'] = 43; 
} 

희망을! :)

+3

+1 - '이론'및 구체적인 해결책의 좋은 조합. –

+0

아주 기본적인 것 같지만 여전히 혼란 스럽습니다. 이걸 어디에 넣어야합니까? 이 작업을 수행하려면 모듈을 만들어야합니까? 또는 내 테마에 .php 파일을 만들 수 있는데,이 파일을 사용할 수 있습니까? 선 테마로 내 테마를 만들고 있으므로 위의 선전을 내 테마 폴더의 theme-settings.php 아래쪽에 배치하려고했습니다. 그게 작동하지 않아서 아래 보이는 template.php 파일에 넣으려고했습니다. http://jonrwilson.com/user-login_template.php.png 그 또한 작동하지 않았습니다. 나는 당신이 나에게 준 링크를 모두 읽으려고했지만, 그들은 그것이 일어나고 있다고 말하지 않는다! – Jon

+0

코드가 여러 가지 이유로 작동하지 않습니다. 1) 모듈 대신 template.php에 후크를 넣습니다. 2) 코드에 따라 함수의 이름을 변경하지 않았습니다. 3) 다른 함수에 중첩 된 경우. 4) 내가 볼 수있는 한 중괄호가 빠져있다. Drupal이 어떻게 작동하는지 명확하지 않다는 것을 알기 때문에 http://drupal.org/theme-guide/6 및 http://api.drupal.org/api/group/hooks를 읽으시기 바랍니다. ... 여하튼, 예를 들면 : what.module에 "whatever_form_user_login_alter"라는 함수가있는 "whatever"라는 모듈을 갖춰야합니다. HTH! – mac

0

나는 당신이 당신의 HTML (또는 TPL)에 가야이 경우, 아닌 CSS 파일을 편집 할 생각.

올바른 부분을 찾으려면 관련 문자열 (예 : size="43" name="name" 등)을 빠르게 검색하는 것이 하나의 방법입니다.

+0

나는 size="43"'#size' => 15과 몇 가지 유사 콘텐츠를 검색했습니다. 유용한 것을 반환합니다. theme-settings.php와 install.php에는 '#size'에 대한 답을 얻지 만 .tpl.php 또는 .html 파일은 반환하지 않습니다. (그리고 검색 결과는 내가 필요로하는 것을 가지고 있지 않다) 다른 제안? – Jon

0

drupal 6에서 사용자 로그인 양식을 테마로 사용하는 방법은 모듈이 아닌 템플릿 파일에서 전처리 기능을 사용하는 것입니다.

function yourThemename_preprocess_user_login(&$variables) { 
    $variables['form']['name']['#size'] = 15; 
    $variables['form']['pass']['#size'] = 15; 
    $variables['rendered'] = drupal_render($variables['form']); 
} 

은 (거기 있지 인 경우) 새로운 파일 사용자 login.tpl.php를 작성하고 그냥 붙여 넣기 :

<?php print $rendered; // this variable is defined in the preprocess function user_login and print the login form ?> 

돈 template.php에서

이 코드를 넣어 성능 설정에서 테마 캐시 또는 시스템 캐시를 지우는 것을 잊지 마십시오.