2015-02-02 5 views
0

내 페이지에는 필드 세트, 항목 유형 및 관리 파일의 세 가지 양식 컨트롤이 있습니다. Drupal 7 양식 API 덮어 쓰기 양식 컨트롤

enter image description here

function myid_user_page_form(){ 
    $form = array(); 
    $form['id'] = array(
     '#type' => 'fieldset', 
     '#title' => t('ID Information'), 
     '#collapsible' => TRUE, 
     '#collapsed' => FALSE, 
    ); 
    $form['id']['mymarkup'] = array(
     '#type' => 'item', 
     '#markup' => 
      '<canvas id="cnv" name="cnv" width="500" height="100" style="border: 1px solid black;"></canvas>' 
    ); 
    $form['id']['custom_content_block_image'] = array(
     '#type' => 'managed_file', 
     '#name' => 'custom_content_block_image',  
     '#size' => 40,  
     '#upload_location' => 'public://', 
     '#theme' => 'myid_signature_upload', 
    ); 
} 
나는 "파일 선택"버튼을 클릭하고 이미지를 업로드 할 때, 다음과 같이 표시됩니다

enter image description here

내가 첫 번째 양식에 이미지를 표시 할 위치/캔버스 위치를 제어합니다. 나는 어떻게 그럴 래?

/** 
    * Implements myid_signature_upload theme callback. 
    */ 

function theme_myid_signature_upload($variables) {  
    $element = $variables['element']; 
    $output = ''; 
    if($element['fid']['#value'] != 0) {  
     $output .= '<div class="multifield-thumbnail">'; 
     $output .= theme('image_style', array('style_name' => 'thumbnail',     'path' => file_load($element['fid']['#value'])->uri, 'getsize' => FALSE)); 
     $output .= drupal_render_children($element); 
     $output .= '</div>'; 
    } 
    return $output; 
} 
function myid_theme(){ 
    return array( 
     'myid_signature_upload' => array(
      'render element' => 'element',  
     ), 
    ); 
} 
+0

이미지 만 캔버스 안에 표시하거나 업로드 파일 필드에도 표시 하시겠습니까? –

+0

@Muhammad Reda -> 업로드 된 이미지를 캔버스 위치에 표시하고 캔버스를 숨기고 싶습니다. –

답변

0

시도가 캔버스 마크 업 theme_myid_signature_upload() 내부에 업로드 된 이미지 표시를 포장 :

이 내 코드입니다.

function theme_myid_signature_upload($variables) {  
    $element = $variables['element']; 
    $output = ''; 
    if($element['fid']['#value'] != 0) { 
     // open canvas tag <canvas ... >  
     $output .= '<canvas id="cnv" name="cnv" width="500" height="100" style="border: 1px solid black;">'; 
     $output .= theme('image_style', array('style_name' => 'thumbnail',     
        'path' => file_load($element['fid']['#value'])->uri, 'getsize' => FALSE)); 
     $output .= drupal_render_children($element); 
     // close canvas tag </canvas> 
     $output .= '</canvas>'; 
    } 
    return $output; 
} 
+0

-> 시도했지만 캔버스가 2 개가되었습니다. 또 다른 대안은 canvass 태그를 숨기는 것입니다. 나는 어떻게 그럴 래? –

+0

'myid_user_page_form' 형식으로 캔버스를 제거했습니다. 더 이상 필요하지 않습니다. –

+0

캔버스가 내 이미지와 제거 버튼을 오버레이했습니다. 다시 보이게 만드는 방법? –