The purpose of this talk will be to provide the audience with a 45 minute crash course in Typoscript.. The talk will be aimed at TYPO3 administrators and developers who find Typoscript frustrating, confusing, or downright maddening. I will start by explaining the fundamentals of TypoScript, including what it is, its syntax, and how it generally functions throughout the TYPO3 core. I will give a brief overview of available Typoscript resources on typo3.org and a quick lesson in how to read the TSREF, which can be a challenge in and of itself. Building off of this foundation, the talk will move quickly into more advanced Typoscript techniques and best practices. We’ll walk through of some of the more vexing components of Typoscript, including the ways in which Typoscript can interact with the page record (or, in some cases, the cObject data property), CASE objects, and more advanced parts of stdWrap. We’ll look at how, in the end, everything in TYPO3 gets rendered through Typoscript, including plugins. We’ll discuss strategies for extending the Typoscript that renders core content elements in CSS Styled Content. Everyone will leave the talk with a Typoscript cheat sheet, and better understanding of how to utilize Typoscript effectively in their TYPO3 projects and how to find solutions when Typoscript doesn’t do what they expect it to.
If you are building a service oriented system and you want to build it for scale as well as flexibility. There are a few questions you need to make sure are asked and answered regarding the data interchange between services and offline persistency of services data. Questions as:
- How can I change a service API without breaking other services?
- How do I keep data from services consistent over time?
This talk covers the challenges we tackled during building our new service oriented system. Summarizing what we realized would bad Ideas to do, what are the better approaches to data consistency.
It includes a dive into the Apache Avro technology and how we used it.
Also what other supporting infrastructure we created to help us achieving the goal of consistent yet flexible system.
If you are building a service oriented system and you want to build it for scale as well as flexibility. There are a few questions you need to make sure are asked and answered regarding the data interchange between services and offline persistency of services data. Questions as:
- How can I change a service API without breaking other services?
- How do I keep data from services consistent over time?
This talk covers the challenges we tackled during building our new service oriented system. Summarizing what we realized would bad Ideas to do, what are the better approaches to data consistency.
It includes a dive into the Apache Avro technology and how we used it.
Also what other supporting infrastructure we created to help us achieving the goal of consistent yet flexible system.
This is a presentation about Personal styling and how-to-wear for working women. Presented in the event hosted by Smapo, which is a smartphone APPS of shopping points service, on Nov 7th, 2013.
Rules Of Brand Fiction from @BettyDraper and @Roger_SterlingHelen Klein Ross
"Rules of Brand Fiction from Twittering MadMen" panel given March 13, SXSW 2010 by Helen Klein Ross and Michael Bissell, with contribution from Ellen Mahoney.
Podcast/webcast manual and training – Produced for e-NC under a grant from the W.K. Kellogg Foundation, these products educate the reader about podcasting and webcasting. They also provide a tutorial describing how to produce a first time podcast for free.
Redefining Convenience with Mobile BankingAman Narain
Presentation at the Australian Retail Deposits Conference 2012 to explore Standard Chartered's journey so far and share observations on the evolution of distribution and service convenience with Mobile Banking
This is a presentation about Personal styling and how-to-wear for working women. Presented in the event hosted by Smapo, which is a smartphone APPS of shopping points service, on Nov 7th, 2013.
Rules Of Brand Fiction from @BettyDraper and @Roger_SterlingHelen Klein Ross
"Rules of Brand Fiction from Twittering MadMen" panel given March 13, SXSW 2010 by Helen Klein Ross and Michael Bissell, with contribution from Ellen Mahoney.
Podcast/webcast manual and training – Produced for e-NC under a grant from the W.K. Kellogg Foundation, these products educate the reader about podcasting and webcasting. They also provide a tutorial describing how to produce a first time podcast for free.
Redefining Convenience with Mobile BankingAman Narain
Presentation at the Australian Retail Deposits Conference 2012 to explore Standard Chartered's journey so far and share observations on the evolution of distribution and service convenience with Mobile Banking
Обработчик шаблонов Twig обретает все большую популярность среди разработчиков. Он поддерживается практически всеми современными PHP фреймверками: Drupal, Symfony, Zend Framework, YII, CodeIgniter, CakePHP. Так за что разработчики любят Twig?
В докладе автор на примерах покажет простоту и гибкость Twig шаблонизатора. Далее будут рассмотрены некоторые аспекты расширения стандартного Twig функционала при помощи собственных функций, фильтров, тестов, декларирования глобальных переменных и т.д. Также будет показано внутренне устройство Twig – парсер, лексер, компилятор и создание собственного тега (то что пишется между {%..%} )
LavaCon 2012 presentation about creating eBooks from DocBook XML. This presentation provides details of the XML Press process for creating eBooks. A companion presentation (From XML to eBooks Part 2: Overview) is an introduction.
Getting started with typescript and angular 2Knoldus Inc.
The Typescript is getting popular day by day, mainly because of its use in angular 2 and its type annotation in these slides i give a brief introduction to typescript and how it works with angular2
This is an intermediate conversion course for C++, suitable for second year computing students who may have learned Java or another language in first year.
Have questions about how to script or integrate a desired feature? Titanium Studio offers a wealth of opportunities for modifying and extending behavior through both Eclipse plugins and Rubles, Studio's own scripting interface.
Ingo Muschenetz, Director of Tools Engineering, will lead a deep dive into the scripting interface of Titanium Studio to show how you can customize and extend Studio to better fit your preferences and workflow. We'll cover themes, scopes, commands, snippets, project templates and content assist showing possible approaches and solutions to easily modifying existing functionality, providing your own, and sharing with others.
This session is for developers of all skill levels, with discussion and explanation of several use cases.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
2. Overview
• What is Typoscript, really, and
how does it generally work?
• Overview of Typoscript Syntax
• Overview of how pages are
rendered through Typoscript
• Typoscript and PHP
• Navigating Typoscript
documentation
• Overriding core content
rendering
• Typoscript best practices
3. Where is Typoscript Used?
• Typoscript is used to tell TYPO3 how to render pages.
Every TYPO3 site requires a root-level Typoscript
template.
• Typoscript is (over) used in extension templates to
control the behavior of individual pages or branches of
a site.
• Typoscript is used in static templates, which are part
of TYPO3 extensions, to provide default configuration
that can be overridden on individual sites.
4. Typoscript is
Idiosyncratic,
which can be
confusing.
For better or for worse,
extension authors are free to
implement Typoscript
however they please.
5. Take tt_news, for example
• Like most extensions,
tt_news contains
Typoscript properties
that are only used in
tt_news.
• To undestand tt_news’
Typoscript, you would
need to look at the
tt_news documentation.
• Look for TS in EXT/pi1/
static or EXT/static.
7. Typoscript is a
configuration language
• In this sense, it’s similar to YAML or XML.
• Typoscript is not a programming language—it doesn’t
really do anything programmatic, although it sometimes
seems like it does.
• Typoscript is interpreted by PHP scripts, which use it to
determine what to render on the front-end.
25. [globalVar = TSFE:id = 1]
key.value = true
[else]
key.value = false
[end]
Typoscript conditions are
awesome. In most cases, use
them instead of extension
templates.
26. A TYPO3 page
is a set of TS
cObjs mapped
to an HTML
template.
27. In TYPO3, all things come
from Typoscript.
Pages Navigation Plugins
and content elements and page titles and dynamic content
29. How a page is rendered
from Typoscript
• TYPO3 looks for a PAGE typoscript object, which is
similar to a COA (content object array).
• According to convention, we put the majority of the
output for a page into PAGE.10.
• PAGE.10 is typically a USER object (eg, templavoila) or
a TEMPLATE object.
30. Anatomy of a
TemplaVoila Page TS Obj
USER SCRIPT: Page. Page.
tx_templavoila_pi1->main_page 10 20
PAGE
HTML Template TypeNum=0
TS Obj
Content Area TS Obj Output
TS Obj to
Browser
31. Anatomy of a
TEMPLATE Page TS Obj
TS TEMPLATE OBJECT
TS Obj Page. Page.
10 20
Content Area TS Obj
TS Obj PAGE
TypeNum=0
HTML TMPL WITH MARKERS
Output
AUTOMAKETEMPLATE
to
HTML TEMPLATE Browser
32. Behind the
Scenes
Let’s look at how PHP code
interacts with Typoscript.
33. class.tslib_content.php
This is where individual TS content objects are rendered.
tslib_content contains the class definition for the tslib_cObj
object, which is used to render HTML from Typoscript.
34. It’s really not that
complicated.
Many of the tslib_cObj methods are pretty straight forward.
The code for rendering a TEXT object, for example, is one
line. Most of the functionality is located in stdWrap or in
other Typoscript “functions.”
35.
36. But who
needs code
when you
have the
TSREF?
You can find just about
everything you need to
know about Typoscript in
the TSREF.
37. Data Types
You just
have to Functions
know how
to read it...
The TSREF is divided
into a few key parts:
Setup
•Data Types
•Functions
•Setup
•Content Objects cObjects
38. Typoscript Content Objects
• Typoscript Content Objects are chunks of content that
are rendered from Typoscript. Eg. a menu, or a plugin, or
a logo in a header.
• The main ones are: HTML, TEXT, COA, IMAGE,
IMG_RESOURCE, HMENU, CASE, FORM, TEMPLATE,
IMGTEXT, RECORDS, CONTENT.
39. PAGE COA
TEXT
HTML COA
HMENU
HMENU
HTML
HTML
HMENU
PLUGIN
PLUGIN
CONTENT
CONTENT
40. Typoscript Content Objects
• CSS Styled Content is used to render content from
individual tt_content records.
• It is essentially a library of Typoscript objects (and some
associated PHP scripts) that transform tt_content
records into HTML.
tt_content:10 <!-- COMMENT... -->
<h1>My Record</h1>
Field Value
header My Record
tt_content.text <p class=”bodytext”>
Test
</p>
bodytext Test
43. Typoscript
Data Types
•Every Typoscript
property has a data
type. Most are strings
or integers.
•Some properties are of
a certain data type,
which often means that
there are additional
properties available.
46. Typoscript Functions
• We might think of Typoscript functions as small
content objects.
• For example, the typolink function turns a chunk of TS
into text wrapped with an A tag or, in some cases, a
URL.
• You will see references to these functions throughout
the TSREF. They are generally prefaced with -> (eg. -
>stdWrap). If the value in the data type column begins
with ->, it’s a function. Otherwise, it’s a data type.
47. As with datatypes,
remember the common
functions, look up the rest.
•stdWrap •typolink •parseFunc
•imgResource •textStyle •makeLinks
•imageLinkWrap •encapsLines •tags
•numRows •tableStyles •HTMLparser
•select •references •HTMLparser_tags
•split •addParams
•if •filelink
48. stdWrap
• Use stdWrap to manipulate strings: trim, parseFunc,
strftime, case, stripHtml, cropHtml, crop, wrap,
innerWrap, etc.
• Use stdWrap to insert data into output: data, field
• Use stdWrap to wrap other content objects around a
value: preCObject, postCObject.
• Use stdWrap to pass values through PHP functions:
preUserFunc, postUserFunc, postUserFuncInt.
• Use stdWrap to implement simple conditional logic: if,
fieldRequired, required, ifEmpty, ifBlank, override.
49. typolink
• It is essential that you use typolink to render links from
typoscript. Doing so will make your site more portable
and less prone to broken links.
• use the .parameter property to designate the href of the
link.
• use the .returnLast property to return a URL instead of
a full A tag.
• you have access to stdWrap on parameter, which means
you can do things like this:
parameter.field = uid
parameter.additionalParams = &L=1
50. ParseFunc is a session in
and of itself. For now, we’ll
just focus on what it does
(not how it does it).
You should at least know that any field that is rendered on
the front-end that could contain HTML should probably be
passed through parseFunc.
ParseFunc is also responsible for transforming RTE content
on the frontend, and for parsing TYPO3-specific tags.
51. Typoscript Setup: Config
• So far we’ve been looking at Typoscript in the context
of content objects. Eg, using Typoscript to render an
HMENU content object.
• To make matters more confusing, Typoscript is also
used for front-end configuration (much like how
TSConfig is used for backend configuration).
• Mostly, you don’t need to worry about the contents of
the setup section of the TSREF, except for...
52. Typoscript Setup: Config
• ...except for the “config” section.
• “config” contains properties that are generally
applicable to every page that is governed by a given
Typoscript template.
• TYPO3 site builders should familiarize themselves with
the config section, as there are lots of important
properties contained within.
56. Typoscript Best Practices
• Store your Typoscript in the filesystem, not in the
database. If it’s in the database, it can’t be versioned
with SVN, Git, etc.
• Avoid using extension templates. Instead, make a new
page template (reusable) or use a Typoscript condition.
• Comment Typoscript carefully. Use object names (eg.
lib.X) as a sort of Typoscript namespace.
• Keep extension configuration and page template
configuration separate.
57. Typoscript Best Practices
• Organize your Typoscript in such a way that you’re
able to avoid redundancy. Don’t declare properties
twice if you an avoid it!
• Use constants constantly. Always abstract the baseUrl
to a constant, as well as any page ID values.
• Never directly modify the Typoscript in an extension
directory. If you do, you will regret it later.
• Avoid using too many extension templates. Try to keep
things in one place.
58. Typoscript Best Practices
• Typolinks! Typolinks! Typolinks! Use wraps and COAs
so that you don’t have to hard code URLs in your
Typoscript (or, even worse, in your templates).
• Keep Typoscript lightweight and modular. Instead of
making a giant COA with 4 complex entries, make 4 TS
objects and copy them into the COA.
• Remember that order matters in Typoscript. You can’t
reference another object unless that object has been
included above the spot where you reference it.
59. How we
organize our
Typoscript
•Extension TS goes in
conf_ext, global site TS
goes in conf_general and
tsconfig goes in, well,
tsconfig.
•We store environment-
specific constants in
global_constants_context.
txt.
60. How we
organize our
Typoscript
•Put an .htaccess file in
fileadmin/templates/conf
so that you prevent
spiders and users from
viewing the contents of
your Typoscript. That
said, if it’s secret, try not
to store it in Typoscript.
61. PID and URL abstraction
simplifies distributed
development
Development Staging Production
carnegie.lucas.cic.com staging.carnegie.org carnegie.org
carnegie.zach.cic.com
carnegie.gabe.local
62. PIDs and Domain Names
change in each
environment.
Development Staging Production
carnegie.lucas.cic.com staging.carnegie.org carnegie.org
carnegie.zach.cic.com
carnegie.gabe.local
63. global_constants_context
does not get checked into
Git—it’s context specific.
Development Staging Production
carnegie.lucas.cic.com staging.carnegie.org carnegie.org
carnegie.zach.cic.com
carnegie.gabe.local
64. All other Typoscript DOES
get checked into Git.
Development Staging Production
carnegie.lucas.cic.com staging.carnegie.org carnegie.org
carnegie.zach.cic.com
carnegie.gabe.local
65. Wake up; it’s over!
Thanks for listening and good luck with
your future adventures in Typoscript.