2016-04-09 114 views
1

我想編輯Concrete5中的標準塊 - image_slider塊來修改它的轉換速度。編輯混凝土塊5

理論上這應該很簡單;改變地處速度值:

..concrete/blocks/image_slider/view.js 

所以我這個文件複製到

..application/blocks/image_slider/view.js 

,改變了價值。

在這一點上,滑塊確實執行該功能,但由於某種原因,JavaScript未按預期運行 - 它的執行(我添加了一個console.log用於測試),但滑塊不再滑動,導航箭頭缺失。檢查滑塊沒有類更改正在發生。

我找不到任何關於在我自己的應用程序中擴展view.js的信息,而且我嘗試的任何東西似乎都不起作用。

我使用的塊可以在他們的github上可以找到,我運行Concrete5 v5.7.5.2: https://github.com/concrete5/concrete5/tree/5.7.5.2/web/concrete/blocks/image_slider

+0

你把你說的「應用程序/ image_slider /」或塊文件夾,即:「應用程序/塊/ image_slider/...」 – tofraser

+0

@tofraser是的,我很抱歉,這是我的錯誤。我已經糾正了這個問題。 – kirgy

+1

是否嘗試清除服務器緩存?最好在開發過程中禁用它。 – tofraser

回答

1

你正在做的壓倒一切的是正確的,反正在最新的版本(5.7 .5.6)concrete/blocks/image_slider中沒有view.js

因此,爲了讓它運行,您需要將view.php重寫爲(application/blocks/image_slider/view.php)。

的選項在view.php開始處理第9行:

<script> 
$(document).ready(function(){ 
    $(function() { 
     $("#ccm-image-slider-<?php echo $bID ?>").responsiveSlides({ 
      prevText: "", // String: Text for the "previous" button 
      nextText: "", 
      <?php if($navigationType == 0) { ?> 
      nav:true, 
      <?php } else { ?> 
      pager: true, 
      <?php } ?> 
      <?php if ($timeout) { echo "timeout: $timeout,"; } ?> 
      <?php if ($speed) { echo "speed: $speed,"; } ?> 
      <?php if ($pause) { echo "pause: true,"; } ?> 
      <?php if ($noAnimate) { echo "auto: false,"; } ?> 
      // transition 
      transition: //your code here 
     }); 
    }); 
}); 
</script> 

而且,正如@tofraser說,在開發過程中禁用所有緩存。

1

當您重寫一個核心Concrete5塊時,我發現將整個塊文件夾從Concrete文件夾複製到應用程序文件夾是一種很好的做法。

正常情況下,可以在圖像滑塊窗體中處理速度變化,並將其添加到頁面中。如果您嘗試更新速度基準值,則最好在安裝過程中編輯圖像滑塊窗體中傳遞的默認值 - >application\blocks\image_slider\form_setup_html.php (for me it's line 298)

<?php echo $form->number($view->field('speed'), $speed ? $speed : 500, array('min' => '1', 'max' => '99999'))?><span class="input-group-addon"><?php echo t('ms'); ?></span>

更新「500」以毫秒爲單位所需基本速度應該照顧它爲您服務!