在MODx中循环调用ditto调用

时间:2014-01-12 04:17:55

标签: modx modx-evolution ditto

我使用ditto来显示特定父级的最后一个条目。为此,我使用以下电话:

[!Ditto? &parents=`5` &orderBy=`createdon DESC` &display=`3`

&total=`4` &extenders=`summary` &tpl=`tpl_news` &truncLen=`160` &truncOffset=`20` !]

我现在希望我的网站不断循环访问特定范围的父ID,并每隔一秒更改一次父参数。

结果应该是ditto调用所调用内容的“幻灯片”。

没有特殊效果,没有设计(模板提供的除外)。

有没有简单的方法来管理它?

解决方案:

让它发挥作用!

我创建了这个资源:

<div id="newsticker_vn">[!Ditto? &parents=`6` &orderBy=`createdon DESC` &display=`1`<br />&total=`4` &extenders=`summary` &tpl=`tpl_news` &truncLen=`160` &truncOffset=`20` !]</div>
<div id="newsticker_hp">[!Ditto? &parents=`5` &orderBy=`createdon DESC` &display=`1`<br />&total=`4` &extenders=`summary` &tpl=`tpl_news` &truncLen=`160` &truncOffset=`20` !]</div>
<div id="newsticker_ks">[!Ditto? &parents=`7` &orderBy=`createdon DESC` &display=`1`<br />&total=`4` &extenders=`summary` &tpl=`tpl_news` &truncLen=`160` &truncOffset=`20` !]</div>

并使用此脚本获取所需的ditto调用并循环它们:

<div id="newsticker"></div>
<script type="text/javascript">
    function execute() {
        $( "#newsticker" ).load("[~348~] #newsticker_vn").delay( 300 ).fadeIn( "slow" ).delay( 6000 ).fadeOut( "slow",execute2 );
    }
    function execute2() {
        $( "#newsticker" ).load("[~348~] #newsticker_ks").delay( 300 ).fadeIn( "slow" ).delay( 6000 ).fadeOut( "slow",execute3 );
    }
    function execute3() {
        $( "#newsticker" ).load("[~348~] #newsticker_hp").delay( 300 ).fadeIn( "slow" ).delay( 6000 ).fadeOut( "slow",execute );
    }
    execute();
</script>

我尝试在一个功能中执行所有步骤,但由于某种原因,它在旋转之前显示每个同上三次调用,不明白为什么。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

除非我不理解你要做什么,否则如果不改变你的模板就不可能(假设你的模板不支持循环)。

从你的解释看起来你似乎是某种ajax功能。您需要在管理器中设置2个资源。

  1. 您的页面使用您拥有的任何模板
  2. 获取第一页内容的另一个页面

    第一页是您的常规页面。第二个是使用&#34;空白&#34;模板,只有一个随机的Ditto调用。您将不得不修改第一个模板以使用一些ajax代码加载第二页。