【问题标题】:Editing Block in Concrete5在 Concrete5 中编辑块
【发布时间】:2016-04-09 19:16:11
【问题描述】:

我正在尝试在 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

【问题讨论】:

  • 你是放在你说“application/image_slider/”的地方还是在块文件夹中,即:“application/blocks/image_slider/...”
  • @tofraser 是的,我做到了,抱歉那是我的错误。我已经更正了这个问题。
  • 您是否尝试清除服务器缓存?最好在开发过程中禁用它。
  • 是的,缓存已被禁用。我似乎不信任禁用的缓存...所以无论如何我遇到问题时都会清除它。
  • 您可以信任缓存... ;-) 我的回答有帮助吗?

标签: javascript concrete5 concrete5-5.7


【解决方案1】:

当您覆盖核心 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”更新到您想要的基本速度应该会为您解决!

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多