【问题标题】:Typo3 8.7.x / Typoscript: Can't get data from rootpage, slide stops before rootpageTypo3 8.7.x / Typoscript:无法从 rootpage 获取数据,在 rootpage 之前滑动停止
【发布时间】:2018-08-22 09:40:59
【问题描述】:

我想获得一些与我的 where 子句匹配的字段。我不匹配,那么它应该查看父页面等等。问题是,幻灯片在我的根页面之前停止。

test = CONTENT
test {
    table = pages
    select {
      where = NOT tx_pagesaddfields_sliderimages=0
      pidInList = this
      orderBy = sorting
    }
    slide = -1
    renderObj = TEXT
    renderObj {
      field = title
      wrap = |<br />
    }
}

【问题讨论】:

  • 您只想在根行中向上获取一个标题还是收集更多?
  • 只有一个标题。
  • 您的根页面或任何其他“文件夹”类型的父页面?这将停止滑动功能。
  • 不,没有父文件夹是 sysfolder,只能键入页面和快捷方式。我知道 sysfolder 的错误,所以我什至将我的 sysfolder 移到了根页面上方进行测试
  • 你能指定你想要的结果吗?试图描述您当前的查询:获取当前页面中包含的 所有页面,这些页面在字段 tx_pagesaddfields_sliderimages 中有一个条目。如果当前页面中没有结果,请尝试查找父级、父级的父级,...直到来自 rootpage 的页面。呈现这些(页面)记录的标题。

标签: php mysql typo3 typoscript typo3-8.x


【解决方案1】:

您正在寻找根线上方的第一张图片?

将您的字段声明为根行字段:

$GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'] .= ',tx_pagesaddfields_sliderimages' 

以适当的方式访问它:

temp.image = IMAGE
temp.image {
    file {
        treatIdAsReference = 1
        import.data = levelfield:-1, tx_pagesaddfields_sliderimages, slide
        import.listNum = 0
    }
}

【讨论】:

  • 可以,但是也需要这个页面的 tx_pagesaddfields_slidertitle 字段
  • 那么你有一个概念错误。您需要的所有信息都应该在插入页面记录的记录中。您可以定义自己的记录类型(带有图像和标题),或者为 fal 给出的每个文件/图像使用元数据的一个字段。
  • 啊好吧,我明白你的意思
【解决方案2】:

现在我已经有了一个解决我的问题的办法。

lib.slidertitle = CONTENT
lib.slidertitle {
  table = pages
  select {
    where = NOT tx_pagesaddfields_sliderimages=0
    pidInList = this
  }
  slide = -1

  renderObj = TEXT
  renderObj {
    field = tx_pagesaddfields_slidertitle
    wrap = |
  }

  stdWrap.ifEmpty.cObject = CONTENT
  stdWrap.ifEmpty.cObject {
    table = pages
    select {
      where = NOT tx_pagesaddfields_sliderimages=0
      pidInList = root
    }
    renderObj = TEXT
    renderObj {
        field < lib.slidertitle.renderObj.field
        wrap = |
    }
  }
}

lib.sliderimages < lib.slidertitle
lib.sliderimages.renderObj.field = tx_pagesaddfields_sliderimages
lib.sliderimages.stdWrap.ifEmpty.cObject.renderObj.field < lib.sliderimages.renderObj.field

lib.slidericon < lib.slidertitle
lib.slidericon.renderObj.field = tx_pagesaddfields_slidericon
lib.slidericon.stdWrap.ifEmpty.cObject.renderObj.field < lib.slidericon.renderObj.field

【讨论】:

  • 我仍然认为您的基本查询 (CONTENT.select) 是错误的,因为您选择了所有具有pid = this 的页面,这些页面都是当前的子页面 - 然后您在 rootline 上做同样的事情各级查询。您从当前的所有子页面开始,然后使用根行中所有页面的所有兄弟页面。
  • 嗯好吧,那可能是对的。但现在我要采用一种新方法,通过我的扩展控制器获取数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 1970-01-01
相关资源
最近更新 更多