0

我正在阅读 TYPO3 扩展。
这是模板文件:

<!-- ###LIST_LATEST### begin -->
<div class="latest-wrapper">
    <ul class="listing latest">
        <li><h1>###LIST_HEADER###</h1></li>
        <!-- ###LOOP### --><!-- ###ITEM### --><li>
            <span class="category">###CATEGORY###</span><span class="company">###COMPANY_NAME###</span><span class="location">###LOCATION###, ###STATE### ###ZIP###</span>
        </li><!-- ###ITEM### --><!-- ###LOOP### -->
        <li class="more">###MORE###</li>
    </ul>
</div>
<!-- ###LIST_LATEST### end -->

class.tx_jcjob_pi1.php,将内容放入模板文件时,似乎有两种方法:

一种。对于###MORE###,请使用此方法:

$markerArray['###MORE###'] = $this->cObj->getTypoLink($this->pi_getLL('text_link_more'), $this->conf['searchID'], array('tx_ajaxsearch_pi1[keyword]' => ''));
$content = $this->cObj->substituteMarkerArray($template, $markerArray);

湾。对于<!-- ###LOOP### -->,请使用此方法:

$template = $this->cObj->substituteSubpart($template, '###LOOP###', $loopContent);  var_dump($template);

所以我的问题是:

  1. ###MORE###和 和 有什么不一样<!-- ###LOOP### -->

  2. substituteMarkerArray和 和有什么不一样substituteSubpart

4

1 回答 1

3

您正在询问 TYPO3 中两个基本模板工具之间的区别:

  1. 标记 ( ###MORE###) 和
  2. 子部分 ( <!-- ###LOOP### -->)

两者都是要替换为动态内容的占位符。

一个标记代表一个奇异的事件。该字符串###MORE###将被函数substituteMarker()substituteMarkerArray()您在 php 代码中定义的任何值替换。

部分总是成对出现;它有一个开始和一个结束标记。它们包含一系列代码,可以在其中替换更多值。在您的情况下,您在模板中找到的两个<!-- ###LOOP### -->字符串之间的所有内容都可以由函数处理substituteSubpart()。通常,当您遍历查询的多个结果时,这用于列表视图。在每个子部分元素中,您可以在 php 代码中递归地替换标记或子部分。

这篇博文可能会让您更深入地了解这些原则。

于 2013-07-27T10:14:35.407 回答