在Concrete5中编辑块

Editing Block in Concrete5

本文关键字:编辑 Concrete5      更新时间:2024-03-25

我正试图在Concrete5中编辑一个标准块-image_slider块,以修改它的转换速度。

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

..concrete/blocks/image_slider/view.js

所以我把这个文件复制到

..application/blocks/image_slider/view.js 

并且改变了该值。

在这一点上,滑块确实执行了函数,但由于某种原因,javascript没有按预期运行——它正在执行(我添加了一个console.log进行测试),但滑块不再滑动,导航箭头也不见了。检查滑块时,没有发生类更改。

我在自己的应用程序中找不到任何关于扩展view.js的信息,无论我尝试什么似乎都不起作用。

我正在使用的块可以在他们的github上找到,我正在运行Concrete5 v.7.5.2:https://github.com/concrete5/concrete5/tree/5.7.5.2/web/concrete/blocks/image_slider

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

通常情况下,在将此速度更改添加到页面时,可以在"图像滑块"窗体中处理此速度更改。如果您试图更新速度基本值,最好在设置->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"更新到您想要的基本速度应该会很好!

您所做的覆盖是正确的,无论如何,在最新版本(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所说,在开发过程中禁用所有缓存。