首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3流体空白页TYPO3

TYPO3流体空白页TYPO3
EN

Stack Overflow用户
提问于 2017-05-16 07:13:47
回答 3查看 1.2K关注 0票数 1

我试着创建我的第一个FLUIDTEMPLATE。但卫理公会

F:布局

不要被激活。

我的结构:

代码语言:javascript
复制
/fileadmin/
/fileadmin/layouts/layout.html
/fileadmin/partials/
/fileadmin/styles/
/fileadmin/templates/template.html
/fileadmin/typoscript/
/fileadmin/typoscript/01_script/setup.ts
/fileadmin/typoscript/02_object/

setup.ts:

代码语言:javascript
复制
page = PAGE
page.typeNum = 0

page.10 = FLUIDTEMPLATE
page.10 {
    format = html
    file = fileadmin/templates/layouts/layout.html
    partialRootPath = fileadmin/templates/partials/
    layoutRootPath = fileadmin/templates/layouts/
    variables {
        content_main < styles.content.get
        content_main.select.where = colPos = 0
    }
}
page.10.file.stdWrap.cObject = CASE
page.10.file.stdWrap.cObject {
    key.data = levelfield:-1, backend_layout_next_level, slide
    key.override.field = backend_layout

    default = TEXT
    default.value = fileadmin/templates/template.html
}

Layout.html:

代码语言:javascript
复制
<div id="wrapper">
      <div id="header">
      header
      </div>

      <div id="top_nav">
      top_nav
      </div>

      <div id="left">
      left
      </div>      

      <div id="right">
      right
      </div>

      <div id="center">
          center
      </div>

      <div id="footer">
       footer
      </div>
</div>

template.html:

代码语言:javascript
复制
<f:layout name = "Layout" />

模板设置:

代码语言:javascript
复制
<INCLUDE_TYPOSCRIPT: source ="DIR:fileadmin/typoscript/">

现在,如果我查看网页,我只看到一个空白页。如果我看了密码我就知道了:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>

    <meta charset="utf-8">
    <!-- 
        This website is powered by TYPO3 - inspiring people to share!
        TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.
        TYPO3 is copyright 1998-2017 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
        Information and contribution at https://typo3.org/
    -->



    <title>Fluid</title>
    <meta name="generator" content="TYPO3 CMS">


    <link rel="stylesheet" type="text/css" href="typo3temp/Assets/b9db200ac9.css?1491821607" media="all">

    </head>
    <body>
    <f:layout name = "Layout" />

    </body>
    </html>

我使用的是TYPO3 v7.6.16。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-16 07:36:52

模板: Startseite.html

代码语言:javascript
复制
<f:layout name="Default" />

<f:section name="body">
    <div id="wrapper">
        <div id="header">
            {header->f:format.raw()}
        </div>

        <div id="top_nav">
            {top_nav->f:format.raw()}
        </div>

       <div id="left">
            {left->f:format.raw()}
       </div>      

       <div id="right">
            {right->f:format.raw()}
       </div>

       <div id="center">
            {center->f:format.raw()}
       </div>

       <div id="footer">
            {footer->f:format.raw()}
       </div>
   </div>
</f:section>

您可以为内部页面(Inhaltsseite)布局配置相同的内容。

布局: Default.html

代码语言:javascript
复制
<f:render section="body" />

Typoscript: (setup.ts)

代码语言:javascript
复制
lib.pageTemplate = FLUIDTEMPLATE
lib.pageTemplate {

    templateName = TEXT
    templateName.stdWrap.cObject = CASE
    templateName.stdWrap.cObject { 
        key.field = backend_layout

        # @todo: setup all page templates
        default = TEXT
        default.value = Startseite

        1 = TEXT
        1.value = Inhaltsseite

    }

    templateRootPaths {
        10 = fileadmin/templates/Resources/Private/Templates/
    }    
    partialRootPaths {
        10 = fileadmin/templates/Resources/Private/Partials/
    }
    layoutRootPaths {
        10 = fileadmin/templates/Resources/Private/Layouts/
    }

    variables {
        content = CONTENT
        content {
            table = tt_content
            select.orderBy = sorting
            slide = -1
            select.where = colPos=0
        }
    }
}

# Page setup Configuration
page = PAGE
page {
    # Your TypeNum
    typeNum = 0

    #Include header data if any
    headerData{
    }

    #Include website meta
    meta{
    }

    #Include stylesheet
    includeCSS {
    }

    #Include Js files(In the header)
    includeJS {
    }

    #Include Js in footer
    includeJSFooter {
    }

    # assign template (copy fluid template object)
    10 < lib.pageTemplate
}

在模板中包括setup.ts -> Include ->setup.ts。

代码语言:javascript
复制
<INCLUDE_TYPOSCRIPT:source="FILE:fileadmin/templates/Configuration/TypoScript/setup.ts" />

欢迎光临!

票数 2
EN

Stack Overflow用户

发布于 2017-05-16 07:44:28

示例代码有几个问题。让我们通过它们:

  1. 您不应该将模板放在文件管理中(默认情况下),web请求可以访问它们,编辑器可以编辑它们。相反,将它们放在Resources/Private/下的扩展中。
  2. 不应将布局文件指定为模板。你有 file =fileadmin/模板/layout/layout.html

而不是layout.html,您应该指向一个模板,比如Template.html在Resources/Private/Templates

  1. 然后,在模板中可以包含一个布局文件。但是移除空白空间:<f:layout name="Layout" />
  2. 使用UpperCase名称作为模板、布局和部分文件(Template.html而不是template.html)。
  3. 改用templateRootPathslayourRootPathspartialRootpaths

所以你的TypoScript看起来可能是这样的:

代码语言:javascript
复制
page.10 = FLUIDTEMPLATE
page.10 {
    format = html
    file = EXT:my_ext/Resources/Private/Templates/Template.html
    partialRootPaths {
        10 = EXT:my_ext/Resources/Private/Partials/
    }
    layoutRootPaths {
        10 = EXT:my_ext/Resources/Private/Layouts/
    }
    templateRootPaths
        10 = EXT:my_ext/Resources/Private/Templates/
    }
    variables {
        content_main < styles.content.get
        content_main.select.where = colPos = 0
    }
}
票数 2
EN

Stack Overflow用户

发布于 2019-12-25 15:02:01

首先,您必须在typoscript中创建一个页面对象(在上面的typoscript中是缺失的):page = page,这应该是您的文本中的第一行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43994740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档