1

我正在尝试在 Concrete5 中编辑一个标准块 - image_slider 块来修改它的过渡速度。

从理论上讲,这应该非常简单;更改位于以下位置的速度值:

..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

4

2 回答 2

2

当您覆盖核心 Concrete5 块时,我发现将整个块文件夹从 Concrete 文件夹复制到您的 Application 文件夹是一种很好的做法。

通常,这种速度变化可以在图像滑块表单中处理,同时它被添加到您的页面中。如果您尝试更新速度基础值,最好在 setup -> 期间编辑在图像滑块表单中传递的默认值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”更新到您想要的基本速度应该会为您解决!

于 2017-10-25T16:20:15.327 回答
1

您所做的覆盖是正确的,无论如何在最新版本(5.7.5.6)中view.js没有concrete/blocks/image_slider.

因此,要使其运行,您需要覆盖view.phpinto ( 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 所说,在开发过程中禁用所有缓存。

于 2016-04-10T07:51:56.403 回答