Skip to content

Instantly share code, notes, and snippets.

@kitsunet
Last active August 29, 2015 14:17
Show Gist options
  • Save kitsunet/71241dad08d8cdc50bdc to your computer and use it in GitHub Desktop.
Save kitsunet/71241dad08d8cdc50bdc to your computer and use it in GitHub Desktop.
Neos Workshop
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<f:section name="stylesheets">
<!-- Bootstrap Core CSS -->
<link href="../../../Public/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="../../../Public/css/agency.css" rel="stylesheet">
<!-- Custom Fonts -->
<link href="http://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
<link href='http://fonts.googleapis.com/css?family=Kaushan+Script' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700' rel='stylesheet' type='text/css'>
</f:section>
<f:section name="headScripts">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</f:section>
</head>
<body id="page-top" class="index">
<f:section name="body">
<!-- Navigation -->
{parts.menu -> f:format.raw()}
<!-- Header -->
<header>
<div class="container">
<div class="intro-text">
<div class="intro-lead-in">Welcome To Our Studio!</div>
<div class="intro-heading">It's Nice To Meet You</div>
<a href="#services" class="page-scroll btn btn-xl">Tell Me More</a>
</div>
</div>
</header>
{content.main -> f:format.raw()}
</f:section>
<f:section name="bodyScripts">
<!-- jQuery -->
<script src="../../../Public/js/jquery.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../../../Public/js/bootstrap.min.js"></script>
<!-- Plugin JavaScript -->
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>
<script src="../../../Public/js/classie.js"></script>
<script src="../../../Public/js/cbpAnimatedHeader.js"></script>
<!-- Contact Form JavaScript -->
<script src="../../../Public/js/jqBootstrapValidation.js"></script>
<script src="../../../Public/js/contact_me.js"></script>
<!-- Custom Theme JavaScript -->
<script src="../../../Public/js/agency.js"></script>
</f:section>
</body>
</html>
# If you need more than just the "main" content area you can uncomment the snippet below. It will add a "sidebar" area
# to your pages. You can add as many areas as you like, still only those that are rendered in your TypoScript and
# Template are visible on your page.
---
#'TYPO3.Neos.NodeTypes:Page':
# childNodes:
# 'sidebar':
# type: 'TYPO3.Neos:ContentCollection'
'Inspiring.NeosWorkshop:SectionPage':
superTypes:
'TYPO3.Neos:Document': 'TYPO3.Neos:Document'
ui:
label: 'Section'
icon: 'icon-columns'
childNodes:
'main':
type: 'TYPO3.Neos:ContentCollection'
'TYPO3.Neos:ContentCollection':
constraints:
nodeTypes:
'Inspiring.NeosWorkshop:TimelineElement': FALSE
'Inspiring.NeosWorkshop:Timeline':
superTypes:
'TYPO3.Neos:Content': 'TYPO3.Neos:Content'
ui:
label: 'Timeline'
icon: 'icon-list-ul'
group: 'structure'
inlineEditable: true
childNodes:
'elements':
type: 'TYPO3.Neos:ContentCollection'
constraints:
nodeTypes:
'*': FALSE
'Inspiring.NeosWorkshop:TimelineElement': TRUE
'Inspiring.NeosWorkshop:TimelineElement':
abstract: false
superTypes:
'TYPO3.Neos:Content': 'TYPO3.Neos:Content'
'TYPO3.Neos.NodeTypes:ImageMixin': 'TYPO3.Neos.NodeTypes:ImageMixin'
'TYPO3.Neos.NodeTypes:TextMixin': 'TYPO3.Neos.NodeTypes:TextMixin'
ui:
label: 'Timeline Element'
icon: 'icon-list-ul'
group: 'structure'
properties:
heading:
type: string
ui:
inlineEditable: true
subHeading:
type: string
ui:
inlineEditable: true
include: 'TypoScriptPrototypes/*'
prototype(Inspiring.NeosWorkshop:Timeline) {
elements = TYPO3.Neos:ContentCollection {
nodePath = 'elements'
}
}
root {
sectionPage {
@position = 'start'
condition = ${q(node).is('[instanceof Inspiring.NeosWorkshop:SectionPage]')}
renderPath = '/section'
}
}
/**
* Root TypoScript template for the Neos Workshop site
*/
page = Page {
head {
stylesheets.site = TYPO3.TypoScript:Template {
templatePath = 'resource://Inspiring.NeosWorkshop/Private/Templates/Page/index.html'
sectionName = 'stylesheets'
}
stylesheets.fontAwesome = TYPO3.TypoScript:Tag {
tagName = 'link'
attributes.href = TYPO3.TypoScript:ResourceUri {
path = 'resource://Inspiring.NeosWorkshop/Public/font-awesome/css/font-awesome.min.css'
}
}
javascripts.site = TYPO3.TypoScript:Template {
templatePath = 'resource://Inspiring.NeosWorkshop/Private/Templates/Page/index.html'
sectionName = 'headScripts'
}
}
body {
templatePath = 'resource://Inspiring.NeosWorkshop/Private/Templates/Page/index.html'
sectionName = 'body'
parts {
menu = Menu
breadcrumb = Breadcrumb
}
content.main = TYPO3.TypoScript:Collection {
collection = ${q(documentNode).children('[instanceof Inspiring.NeosWorkshop:SectionPage]')}
itemName = 'node'
iterationName = 'sectionIteration'
itemRenderer = Inspiring.NeosWorkshop:SectionWrapper
}
javascripts.site = TYPO3.TypoScript:Template {
templatePath = 'resource://Inspiring.NeosWorkshop/Private/Templates/Page/index.html'
sectionName = 'bodyScripts'
}
}
}
section < page {
body {
content {
main >
// The default content section
main = PrimaryContent {
nodePath = 'main'
}
}
}
}
<section id="{sectionId}">
<div class="container">
{content -> f:format.raw()}
</div>
</section>
prototype(Inspiring.NeosWorkshop:SectionWrapper) < prototype(TYPO3.TypoScript:Template) {
templatePath = 'resource://Inspiring.NeosWorkshop/Private/Templates/TypoScriptPrototypes/SectionWrapper.html'
sectionId = ${q(node).property('title')}
content = TYPO3.Neos:ContentCollection {
@override.node = ${q(node).children('main').get(0)}
}
}
https://github.com/IronSummitMedia/startbootstrap-agency
http://sourceforge.net/projects/typo3/files/TYPO3%20Neos/1.2.2/
http://typo3.slack.com
http:/forger.typo3.org/slack
./flow site:prune --confirmation TRUE
./flow package:deactivate TYPO3.NeosDemoTypo3Org
./flow kickstart:site --package-key Inspiring.NeosWorkshop --site-name "Neos Workshop"
./flow site:import --package-key Inspiring.NeosWorkshop
<ul class="timeline">
{elements -> f:format.raw()}
</ul>
{namespace media=TYPO3\Media\ViewHelpers}
{namespace neos=TYPO3\Neos\ViewHelpers}
<li>
<div class="timeline-image">
<f:if condition="{image}">
<f:then>
<media:image asset="{image}" class="img-circle img-responsive" alt="{alternativeText}" title="{title}" maximumWidth="{maximumWidth}" maximumHeight="{maximumHeight}" allowCropping="{allowCropping}" allowUpScaling="{allowUpScaling}" />
</f:then>
<f:else>
<f:security.ifAccess privilegeTarget="TYPO3.Neos:Backend.GeneralAccess">
<f:if condition="{node.context.workspace.name} != 'live'">
<img src="{f:uri.resource(package: 'TYPO3.Neos', path: 'Images/dummy-image.svg')}" title="Dummy image" alt="Dummy image" class="neos-handle" />
</f:if>
</f:security.ifAccess>
</f:else>
</f:if>
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4>{neos:contentElement.editable(property: 'heading', node: node, tag: 'span')}</h4>
<h4 class="subheading">{neos:contentElement.editable(property: 'subHeading', node: node, tag: 'span')}</h4>
</div>
<div class="timeline-body">
<p class="text-muted">{neos:contentElement.editable(property: 'text', node: node, tag: 'span')}</p>
</div>
</div>
</li>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment