2017-09-14 4 views
1

내 모듈 페이지 필드에서 편집했습니다. 오류없이 모든 작품을하지만 난 하이퍼 링크가 표시됩니다 페이지로 이동하면 그냥 나에게SilverStripe 페이지 필드가 작동하지 않습니다.

내 ImageBlock.php 클래스 ImageBlock를 표시하는 블록

{ 
    private static $db = array('WebsiteLinkHyper' => 'VarChar'); // THIS IS ADDED BY ME 
    private static $many_many = array(
     'Images' => 'Image' 

    ); 

    private static $many_many_extraFields = array(
     'Images' => array('SortOrder' => 'Int') 
    ); 

    public function getCMSFields() 
    { 
     $fields = parent::getCMSFields(); 

     $uploadField = null; 
     if (class_exists('SortableUploadField')) { 
      $uploadField = SortableUploadField::create('Images', _t('ImageBlock.IMAGES', 'Images')); 
     } else { 
      $uploadField = UploadField::create('Images', _t('ImageBlock.IMAGES', 'Images')); 
     } 

     $fields->addFieldToTab('Root.Main', $uploadField); 
     $fields->addFieldToTab('Root.Main', TextField::create('WebsiteLinkHyper', 'Link'));// THIS IS ADDED BY ME 
     $this->extend('updateCMSFields', $fields); 
     return $fields; 
    } 

} 

내 imageBlock.ss를 확장

<% loop $Images.Sort('SortOrder') %> 
<a href="$WebsiteLinkHyper"> //THIS IS ADDED 
<figure> 
    $Tag 
    <figcaption>$Title</figcaption> 
</figure> 
</a> 
<% end_loop %> 

관리자 패널의 모든 것이 제대로 작동하지만 페이지로 이동하면 콘텐츠 블록이 표시되지만보기 페이지 소스를 클릭하면이 빈 href가 표시됩니다><a href="">

내가 뭘 잘못하고 있니?

답변

0

이미지를 반복하고 해당 루프 안에 $WebsiteLinkHyper을 추가하는 것처럼 보이므로 SilverStripe이 해당 블록이 아닌 이미지의 속성에 액세스하려고합니다. 범위 수준을 높이는 시도하십시오 :

<% loop $Images.Sort('SortOrder') %> 
    <a href="{$Up.WebsiteLinkHyper}"> //THIS IS ADDED 
    ... 
<% end_loop %> 
+0

지금 나는 적어도 이것을 얻습니다,이 {} – Thranduil

+0

예, 중괄호를 넣을 수는 있지만, 템플릿 프로세서가 sirverstripe 변수를 벗어나는 데 사용됩니다. –

+0

그럼 어떻게해야합니까? – Thranduil