2012-02-14 2 views
0

최신 버전의 Drupal 7을 실행 중입니다. & Ubercart 3. 모듈 내에서 사용할 수 있도록 $ content 변수에서 날짜를 캡처하려고합니다. . 특히 사용자 정의 제품 필드에서 데이터를 캡처하고 해당 데이터를 특정 제품 속성/옵션에 인라인으로 표시하려고합니다.

이 점은 각 제품에 대한 각 특성에 대한 사용자 지정 설명을 만드는 것입니다.

uc_attribute.module에서 $ content 변수를 사용할 수없는 것 같습니다. $ content 사용 [ 'field_original_size']; 정의되지 않은 변수 내용을 반환합니다. render 함수를 사용하면 에러 나 데이터가 반환되지 않습니다. 여기에 지금까지 무엇을 가지고 :

function theme_uc_attribute_option($variables) { 
$original_size = render($content['field_original_size']); 

if($variables['option'] == 'Original'){ 
    $output = $variables['option']; 
    $output .= ', ' . $original_size; 
    if ($variables['price']) { 
    $output .= ', ' . $variables['price']; 
    } 
} 
else{ 
    $output = $variables['option']; 
    if ($variables['price']) { 
    $output .= ', ' . $variables['price']; 
    } 
} 
    return $output; 
} 

은이 작업을 수행하는 가장 쉬운 방법 번째는 token_replace() 함수가 될 수 있다는 것, 그래서를 heres 내가 지금 노력하고 있지만 작동하지 않습니다. 오류는 없지만 토큰은 대체되지 않습니다.

답변

0

당신은 $ 변수를 출력하여 필요한 것이 어딘가에 있는지 확인할 수 있습니다.

+0

감사합니다. 좋은 생각이지만 $ 변수에 저장된 유일한 데이터는 옵션 이름과 가격입니다. – Eric

0

$ 변수에 대한 참조를 사용하여 함수를 선언하지 않았기 때문입니다. 내가 function theme_uc_attribute_option(&$variables) {}라고해야한다고 생각합니다. 이것은 변수의 대신 변수에 대한 참조를 보내도록 PHP에 지시합니다. 값을 전송할 때 변경 사항은 로컬에만 적용됩니다. 참조가 사용되면 변경 내용이 변수로 되돌아갑니다. 자세한 내용은 PHP Manual을 참조하십시오. 나는 이것이 얼마나 오래된 지 알아 차렸다.

관련 문제