【问题标题】:TYPO3 Plugin's positionTYPO3 插件的位置
【发布时间】:2011-11-19 12:16:35
【问题描述】:

如何以编程方式确定插件在页面上的位置?假设我在一个页面上有两个相同插件的实例,我需要确定它们的位置以显示略有不同的布局。可行吗?

谢谢!

【问题讨论】:

  • “位置”是什么意思?客户端浏览器窗口中的 X,Y 坐标?还是 HTML 代码中出现的顺序(哪个插件实例先/后出现)?
  • 第二个选项。抱歉不准确。

标签: typo3 typo3-tca


【解决方案1】:

让您的扩展程序在 $TSFE 中存储一个计数器变量。
此类变量将在插件实例之间存在,并可用于计算存在于同一页面中的实例。
根据该计数器,您可以更改扩展程序的输出。

示例

在你的函数 main 中做这样的事情:

// init counter var in the very first plugin instance
if(!isset($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_'.$this->extKey.'_pi1.']['myCounter'])){
  $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_'.$this->extKey.'_pi1.']['myCounter'] = 0;
}
// increment counter var in each plugin instance 
// and execute code depending on the count
switch(++$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_'.$this->extKey.'_pi1.']['myCounter']){
  case 1:
    ...
    break;
  case 2:
    ...
    break;
  case 3:
    ...
    break;
}

【讨论】:

    【解决方案2】:

    使用剖面框架

    • 编辑您放置插件的内容元素。
    • 转到外观
    • 在“缩进和框架”中选择“框架 1”

    在前端你会发现修改后的插件容器现在有一个额外的 css 类,可以用于不同的布局:

    <div class="csc-frame csc-frame-frame1" id="c123">
    

    在此处了解更多信息:Custom Frames for Content Elements in Typo3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      相关资源
      最近更新 更多