SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
http://www.sxc.hu/photo/1076628


                      Backend-Skin in TYPO3 4.4:            Inspiring people to
                         Technical changes under the hood   share
Backend-Skin in TYPO3 4.4:

         Technical changes under the hood


                       Steffen Ritter <info@steffen-ritter.net>
                    Steffen Gebert <steffen@steffen-gebert.de>




                        TYPO3 Developer Days 2010, Elmshorn


Backend-Skin in TYPO3 4.4:                                        Inspiring people to
   Technical changes under the hood                               share
Introduction


Your speakers




        Steffen Ritter                Steffen Gebert
        Student, Freelancer           Student, Freelancer




Backend-Skin in TYPO3 4.4:                      Inspiring people to
   Technical changes under the hood             share
TYPO3 4.4


On the surface...




                            t3skin in version 4.4
Backend-Skin in TYPO3 4.4:                          Inspiring people to
   Technical changes under the hood                 share
Let‘s break
                                                           the surface!



http://www.flickr.com/photos/blackbird_hollow/3749443815/



                    Backend-Skin in TYPO3 4.4:                      Inspiring people to
                       Technical changes under the hood             share
Previous state


TYPO3 4.3
      without t3skin




                       „retroskin“ - styles of 3.x
Backend-Skin in TYPO3 4.4:                           Inspiring people to
   Technical changes under the hood                  share
Previous state


TYPO3 4.3
      with t3skin installed




                            styles of v4.0 - 4.3
Backend-Skin in TYPO3 4.4:                         Inspiring people to
   Technical changes under the hood                share
Previous state


TYPO3 4.3                                      „retroskin“


                                       core                    t3skin
    t3skin               =             style      +           styles
                                      sheets                  sheets


      retroskin hardcoded in core

      EXT:t3skin only adds CSS to core CSS

      unnecessary CSS loaded, hard to maintain



Backend-Skin in TYPO3 4.4:                            Inspiring people to
   Technical changes under the hood                   share
TYPO3 User Experience Week 2009


Tasks of Team 3
      extend skinning API

      remove all CSS from core

      split up CSS of t3skin

      use CSS icon sprites



                                      Fabien Udriot, Steffen Gebert, Thomas Allmer,
                                           André Wartmann, Michael Leibenson




Backend-Skin in TYPO3 4.4:             Inspiring people to
   Technical changes under the hood    share
Extend the skinning API




Backend-Skin in TYPO3 4.4:            Inspiring people to
   Technical changes under the hood   share
Skinning API


Improvements
      Skins have to register:
      $TBE_STYLES[skins][extKey] = array();

      Automatic inclusion from every skin:
      stylesheets/structure/*.css
      stylesheets/visual/*.css

      Add further directories:
      $TBE_STYLES[skins][extKey][stylesheetDirectories]




Backend-Skin in TYPO3 4.4:                   Inspiring people to
   Technical changes under the hood          share
Skinning API


CSS for your backend module
      Do not misuse skinning API for modules!

      No need for hacks:
      // Mis-using JScode to insert CSS _after_ skin.
      $this->doc->JScode = '<link rel="stylesheet" href="my.css" />'

      Use instead:
      $this->doc = t3lib_div::makeInstance('bigDoc');
      $this->doc->getPageRenderer()->addCssFile();
      Available since TYPO3 4.3




Backend-Skin in TYPO3 4.4:                      Inspiring people to
   Technical changes under the hood             share
Remove all CSS from core




Backend-Skin in TYPO3 4.4:            Inspiring people to
   Technical changes under the hood   share
Remove core CSS


TYPO3 4.4


                                           t3skin
                        t3skin        =   styles
                                          sheets




Backend-Skin in TYPO3 4.4:                          Inspiring people to
   Technical changes under the hood                 share
Remove core CSS


TYPO3 4.4
      without t3skin




                                 „naked“ skin
Backend-Skin in TYPO3 4.4:                      Inspiring people to
   Technical changes under the hood             share
Remove core CSS


„naked“ skin
      benefits:

          no unneeded CSS transferred

          clean CSS as base for skins



      only demand:

          be able to install any skin




Backend-Skin in TYPO3 4.4:              Inspiring people to
   Technical changes under the hood     share
Split up t3skin CSS




Backend-Skin in TYPO3 4.4:                 Inspiring people to
   Technical changes under the hood        share
CSS separation


Criteria
      structure & visual



      by context




Backend-Skin in TYPO3 4.4:            Inspiring people to
   Technical changes under the hood   share
CSS separation


Criteria
      structure                       visual

          width, height                  background

          position                       border

          top, right                     color

          margin, padding                font




Backend-Skin in TYPO3 4.4:                 Inspiring people to
   Technical changes under the hood        share
CSS separation


Conclusion
      Benefit:

          better structure

          know what is defined where



      Drawback:

          enormous amount of HTTP-Requests




Backend-Skin in TYPO3 4.4:                   Inspiring people to
   Technical changes under the hood          share
t3lib_compressor


Features
      takes care of JS and CSS
                                      you have to
      concatenation
                                       enable it!
      minification

      gzip compression




Backend-Skin in TYPO3 4.4:                   Inspiring people to
   Technical changes under the hood          share
t3lib_compressor


gzip compression
      $TYPO3_CONF_VARS[BE][compressionLevel] = 5

      has always been there

      now also used for CSS/JS resources

      needs .htaccess rules:          <FilesMatch ".js.gzip$">
                                          AddType "text/javascript" .gzip
      otherwise: naked BE             </FilesMatch>
                                      <FilesMatch ".css.gzip$">
                                          AddType "text/css" .gzip
                                      </FilesMatch>
                                      AddEncoding gzip .gzip
      Example:
      ext-all.js reduced from 642K to176K


Backend-Skin in TYPO3 4.4:                                 Inspiring people to
   Technical changes under the hood                        share
Sprite Icons




Backend-Skin in TYPO3 4.4:                 Inspiring people to
   Technical changes under the hood        share
Sprite Icons
                                                    <img> is
Sprites?                                            history ;-)
      many icons combined into one image

      inclusion as background-image using CSS

      background-position to select proper icon

      .t3-icon {
         height: 16px;
         width: 16px;
      }
      .t3-icon-actions {
         background-image: url("t3-icon-actions.png");
      }
      .t3-icon-actions.t3-icon-document-open {
         background-position: 0 -672px;
      }


Backend-Skin in TYPO3 4.4:                          Inspiring people to
   Technical changes under the hood                 share
Backend optimizations


Speedup
      Task:

          Log in and open List module


                  1700                               170                             2200


               850                              85                               1100

              0                                                                  0
KByte                           HTTP Requests 0                  IP-Packets



                                 v 4.3      v. 4.4

Backend-Skin in TYPO3 4.4:                                 Inspiring people to
   Technical changes under the hood                        share
Icons and Graphics
                   new strategy - new technique




Backend-Skin in TYPO3 4.4:                        Inspiring people to
   Technical changes under the hood               share
Icons and Graphics


TYPO3 4.3
      Icons in typo3/gfx/ and typo3/sysext/t3skin/gfx/

      unstructured folders, chaotic filenames

      no overview

      no streamlined look

      many HTTP requests

      hardcoded <img>-tags in php classes




Backend-Skin in TYPO3 4.4:                     Inspiring people to
   Technical changes under the hood            share
Icons and Graphics


whishes and aims
      new iconset, streamlined look and feel

      structured filestructure for saving icons in fs

      reduce http requests on each BE call

      remove as much hardcoded html in BE-php classes

      easy use of TYPO3 icons in own modules

      fancy technical solution



      ==> implement an public to use sprite-icon-API

Backend-Skin in TYPO3 4.4:                             Inspiring people to
   Technical changes under the hood                    share
Icons and Graphics

Problems arising?
      old functionality in t3lib_iconWorks not usable anymore

      all icons used in core have to be changed in php code
      (hardcoded image tags and sizes)



      sprites and controlling CSS have to be maintained




Backend-Skin in TYPO3 4.4:                                Inspiring people to
   Technical changes under the hood                       share
Icons and Graphics


TYPO3 4.4
      changed file structure

      clear naming scheme

      sprite icon API in t3lib_iconWorks (inclusion)

      manager API in t3lib_SpriteManager (handling)
      available icons, managing CSS and generating sprites

      no misuse of icons in wrong context




Backend-Skin in TYPO3 4.4:                             Inspiring people to
   Technical changes under the hood                    share
Icons and Graphics


TYPO3 4.4
                          File structures / naming scheme

    moving icons to images/icons

    clear folder structure / naming
      adopted from freedesktop.org




     COPY an Icon and rename it matching your task
instead of just using the icon dedicated to another action
Backend-Skin in TYPO3 4.4:                                  Inspiring people to
   Technical changes under the hood                         share
Icons and Graphics


Using sprites
      New API in t3lib_iconWorks for sprite usage



          t3lib_iconWorks::getSpriteIcon()
          replacing <img src= t3skin_iconWorks::skinImg>

          t3lib_iconWorks::getSpriteIconForRecord()
          replacing t3skin_iconWorks::getIconImage()

          t3lib_iconWorks::getSpriteIconForFile()




Backend-Skin in TYPO3 4.4:                          Inspiring people to
   Technical changes under the hood                 share
Icons and Graphics


registering icons at SpriteManager
      addIconSprite(array $icons, $styleSheetFile)

      addSingleIcons(array $icons, $extKey = '')

      addTcaTypeIcon($table, $type, $iconFile)



      => all Icon-references should be relative to PATH_site




Backend-Skin in TYPO3 4.4:                           Inspiring people to
   Technical changes under the hood                  share
Icons and Graphics


Using sprites



                         Old function are
                          "deprecated"


                           make sure to adapt your
                          extensions and BE-modules

Backend-Skin in TYPO3 4.4:                            Inspiring people to
   Technical changes under the hood                   share
Sprite API/Manager internals




Backend-Skin in TYPO3 4.4:            Inspiring people to
   Technical changes under the hood   share
Sprite API/Manager internals


Using Sprites - How it works
      Sprite Icon Api (t3lib_iconWorks)

              (find iconname for file or record)

              is requested icon present?

              generate „bunch“ of CSS classes

              wrap it into HTML



      action-document-open

          t3-icon t3-icon-action t3-icon-document-open

Backend-Skin in TYPO3 4.4:                       Inspiring people to
   Technical changes under the hood              share
Sprite API/Manager internals


Icon available?
      requesting icon name <=> fileName



      how to know if an sprite icon is present?



      All icons present in the CURRENT system are placed in
      $TBE_STYLES['spriteIconApi']['iconsAvailable']




Backend-Skin in TYPO3 4.4:                             Inspiring people to
   Technical changes under the hood                    share
Sprite API/Manager internals


Overlays
      overlays are not generated         anymore

      every overlay is an sprite icon itself

      only most important status overlay is automatically rendered

      every „normal“ icon can be overlayed




Backend-Skin in TYPO3 4.4:                            Inspiring people to
   Technical changes under the hood                   share
Sprite API/Manager internals


SpriteManager
      generates cache of icons available

      provides static API to register

          own icon sprites,

          own single icons
          type-icons



      is meant to generate sprites of unsprited icons




Backend-Skin in TYPO3 4.4:                              Inspiring people to
   Technical changes under the hood                     share
Sprite API/Manager internals


   SpriteApi vs. SpriteManager
              Sprite API                            Sprite Manager

• finding iconnames for files     • manages all icons from
• finding iconnames for records extensions and core
• finding/building overlays      • build cache and „available
• building tags and css classes   icon“ list
                                • registers type-Icons for
                                             extending TCA
                                         •   register single icons to be used
 => the actual „icon output“             •   builds sprites and css from
                                             registered icons

   Backend-Skin in TYPO3 4.4:                            Inspiring people to
      Technical changes under the hood                   share
Sprite API/Manager internals


spriteIconGenerator_handler
      Interface t3lib_SpriteManager instanciates

      responsible to „rebuild“ all sprite-related caches.

      CSS files and one php-cache file

      may/should generate sprites used in the generated css file

      TYPO3 4.4: t3lib_spritemanager_SimpleHandler
         --> non spriting implementation




Backend-Skin in TYPO3 4.4:                                  Inspiring people to
   Technical changes under the hood                         share
How To? In depth studies...
    Demonstrating the simplicity of the new technique




Backend-Skin in TYPO3 4.4:                Inspiring people to
   Technical changes under the hood       share
How To?    In depth studies


In depth Studies - How to...
      Adapting Page - Module to repesent your FE Layout

      Exchanging TYPO3 iconset

      Icons in own extensions:

              Own tables with TCA - Icons and TypeIcons

              New Types or Modules (Pages) in CoreTables

              Using own and core icons in BE-Modules




Backend-Skin in TYPO3 4.4:                                Inspiring people to
   Technical changes under the hood                       share
How To?    In depth studies

Adapting Page-Module to repesent your FE Layout

      create a new empty extension

      create folder structure as mentioned

      register your Extensions as skin



      write your CSS for page module




                                                                EXT: pagemodulecss
Backend-Skin in TYPO3 4.4:                        Inspiring people to
   Technical changes under the hood               share
How To?    In depth studies


Exchanging TYPO3 iconset
      create a new empty extension - as always :-)

      copy t3skin/images/icons/ to you extension

      replace all icons with the one you prefer

      optional: create sprites of your icons

      create CSS files mapping every icon to it‘s class



      last two points will be supported by extdeveval soon



Backend-Skin in TYPO3 4.4:                               Inspiring people to
   Technical changes under the hood                      share
How To?    In depth studies


Exchanging TYPO3 iconset
      unregister t3skin icons (extTables.php)
      unset(
         $TBE_STYLES[skins][t3skin][stylesheetDirectories][sprites]
      );

      register yourself as a skin extension
      $TBE_STYLES['skins']['pagemodulecss'] =array();
      $TBE_STYLES['skins']['myskin']['name']= myskin;


      Have fun with your new icons




Backend-Skin in TYPO3 4.4:                       Inspiring people to
   Technical changes under the hood              share
How To?    In depth studies


Own Extensions - TYPE-Icon
      Uses Cases:

          Own PageType,
          Own „Contains Module“ in Pages,
          new Type for tt_content ....
          NEED to Update your Extension for v4.4
      add following code to extTables.php
      t3lib_SpriteManager::addTcaTypeIcon($table, $type,
      t3lib_extMgm::extRelPath($EXT_KEY) . /path/to/my/icon.png)

      Example:
      t3lib_spriteManager::addTcaTypeIcon('pages',
      'contains-news' , $pathToNewNewsIcon);


Backend-Skin in TYPO3 4.4:                         Inspiring people to
   Technical changes under the hood                share
Further reading


Web resources
      doc_core_skinning (work in progress)
      http://forge.typo3.org/projects/show/typo3v4-doc_core_skinning



      EXT:pagemodulecss
      http://forge.typo3.org/projects/show/extension-pagemodulecss



      slides will be available on slideshare.net




Backend-Skin in TYPO3 4.4:                              Inspiring people to
   Technical changes under the hood                     share
?????
                                      ??
                                     ?
                                     ??
                                   ??
                                   ?


Backend-Skin in TYPO3 4.4:                 Inspiring people to
   Technical changes under the hood        share
inspiring people to share.

Contenu connexe

Similaire à Backend-Skin in TYPO3 4.4: Technical changes under the hood (T3DD10)

TYPO3 Flow 2.0 in the field - webtech Conference 2013
TYPO3 Flow 2.0 in the field - webtech Conference 2013TYPO3 Flow 2.0 in the field - webtech Conference 2013
TYPO3 Flow 2.0 in the field - webtech Conference 2013die.agilen GmbH
 
TYPO3 4.6 Overview (Community Day Kyoto)
TYPO3 4.6 Overview (Community Day Kyoto)TYPO3 4.6 Overview (Community Day Kyoto)
TYPO3 4.6 Overview (Community Day Kyoto)Xavier Perseguers
 
TYPO3 Performance (T3DD18)
TYPO3 Performance (T3DD18)TYPO3 Performance (T3DD18)
TYPO3 Performance (T3DD18)Marcus Schwemer
 
2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance
2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance
2018 - CertiFUNcation - Marcus Schwemer: TYPO3 PerformanceTYPO3 CertiFUNcation
 
CertiFUNcation 2017 Best Practices Extension Development for TYPO3 8 LTS
CertiFUNcation 2017 Best Practices Extension Development for TYPO3 8 LTSCertiFUNcation 2017 Best Practices Extension Development for TYPO3 8 LTS
CertiFUNcation 2017 Best Practices Extension Development for TYPO3 8 LTScpsitgmbh
 
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorTYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorNITSAN Technologies
 
Custom theme creation for Websphere Portal 8
Custom theme creation for Websphere Portal 8Custom theme creation for Websphere Portal 8
Custom theme creation for Websphere Portal 8michele buccarello
 
Step by-step process guide for alfresco migration from 5.x to 6.0
Step by-step process guide for alfresco migration from 5.x to 6.0Step by-step process guide for alfresco migration from 5.x to 6.0
Step by-step process guide for alfresco migration from 5.x to 6.0ContCentric IT Services Pvt Ltd
 
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
 Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-HornsteinYandex
 
Docker Advanced registry usage
Docker Advanced registry usageDocker Advanced registry usage
Docker Advanced registry usageDocker, Inc.
 
New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4Quintagroup
 
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 FlowT3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flowmhelmich
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash CourseNilay Binjola
 
Hitchhiker’s Guide to TYPO3 5.0
Hitchhiker’s Guide to TYPO3 5.0Hitchhiker’s Guide to TYPO3 5.0
Hitchhiker’s Guide to TYPO3 5.0Robert Lemke
 

Similaire à Backend-Skin in TYPO3 4.4: Technical changes under the hood (T3DD10) (20)

MVC for TYPO3 4.3 with extbase
MVC for TYPO3 4.3 with extbaseMVC for TYPO3 4.3 with extbase
MVC for TYPO3 4.3 with extbase
 
Typo3 themes
Typo3 themesTypo3 themes
Typo3 themes
 
TYPO3 Flow 2.0 in the field - webtech Conference 2013
TYPO3 Flow 2.0 in the field - webtech Conference 2013TYPO3 Flow 2.0 in the field - webtech Conference 2013
TYPO3 Flow 2.0 in the field - webtech Conference 2013
 
TYPO3 4.6 Overview (Community Day Kyoto)
TYPO3 4.6 Overview (Community Day Kyoto)TYPO3 4.6 Overview (Community Day Kyoto)
TYPO3 4.6 Overview (Community Day Kyoto)
 
Themes
ThemesThemes
Themes
 
TYPO3 4.6 --rebase Overview
TYPO3 4.6 --rebase OverviewTYPO3 4.6 --rebase Overview
TYPO3 4.6 --rebase Overview
 
TYPO3 Performance (T3DD18)
TYPO3 Performance (T3DD18)TYPO3 Performance (T3DD18)
TYPO3 Performance (T3DD18)
 
2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance
2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance
2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance
 
CertiFUNcation 2017 Best Practices Extension Development for TYPO3 8 LTS
CertiFUNcation 2017 Best Practices Extension Development for TYPO3 8 LTSCertiFUNcation 2017 Best Practices Extension Development for TYPO3 8 LTS
CertiFUNcation 2017 Best Practices Extension Development for TYPO3 8 LTS
 
AtoZ about TYPO3 v8 CMS
AtoZ about TYPO3 v8 CMSAtoZ about TYPO3 v8 CMS
AtoZ about TYPO3 v8 CMS
 
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorTYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
 
Custom theme creation for Websphere Portal 8
Custom theme creation for Websphere Portal 8Custom theme creation for Websphere Portal 8
Custom theme creation for Websphere Portal 8
 
Step by-step process guide for alfresco migration from 5.x to 6.0
Step by-step process guide for alfresco migration from 5.x to 6.0Step by-step process guide for alfresco migration from 5.x to 6.0
Step by-step process guide for alfresco migration from 5.x to 6.0
 
Creating custom themes in AtoM
Creating custom themes in AtoMCreating custom themes in AtoM
Creating custom themes in AtoM
 
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
 Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
Building Quality Code That Lasts: A Dropbox Story. Ashley Nelson-Hornstein
 
Docker Advanced registry usage
Docker Advanced registry usageDocker Advanced registry usage
Docker Advanced registry usage
 
New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4New in Plone 3.3. What to expect from Plone 4
New in Plone 3.3. What to expect from Plone 4
 
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 FlowT3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
T3CON14EU: Migrating from TYPO3 CMS to TYPO3 Flow
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Hitchhiker’s Guide to TYPO3 5.0
Hitchhiker’s Guide to TYPO3 5.0Hitchhiker’s Guide to TYPO3 5.0
Hitchhiker’s Guide to TYPO3 5.0
 

Plus de Steffen Gebert

Building an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global InfrastructureBuilding an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global InfrastructureSteffen Gebert
 
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Steffen Gebert
 
Feature Management Platforms
Feature Management PlatformsFeature Management Platforms
Feature Management PlatformsSteffen Gebert
 
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT DevicesServerless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT DevicesSteffen Gebert
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersSteffen Gebert
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Steffen Gebert
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineSteffen Gebert
 
Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0Steffen Gebert
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins PipelinesSteffen Gebert
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesSteffen Gebert
 
Let's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateSteffen Gebert
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebSteffen Gebert
 
Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...Steffen Gebert
 
SDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN componentsSDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN componentsSteffen Gebert
 
The Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 ProjectThe Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 ProjectSteffen Gebert
 
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungDer Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungSteffen Gebert
 
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin TeamOfficial typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin TeamSteffen Gebert
 

Plus de Steffen Gebert (20)

Building an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global InfrastructureBuilding an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global Infrastructure
 
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
 
Feature Management Platforms
Feature Management PlatformsFeature Management Platforms
Feature Management Platforms
 
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT DevicesServerless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical Routers
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
 
Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Let's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a Certificate
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
 
Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...
 
SDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN componentsSDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN components
 
Git Power-Workshop
Git Power-WorkshopGit Power-Workshop
Git Power-Workshop
 
The Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 ProjectThe Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 Project
 
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungDer Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
 
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin TeamOfficial typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
 

Dernier

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Dernier (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Backend-Skin in TYPO3 4.4: Technical changes under the hood (T3DD10)

  • 1. http://www.sxc.hu/photo/1076628 Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 2. Backend-Skin in TYPO3 4.4: Technical changes under the hood Steffen Ritter <info@steffen-ritter.net> Steffen Gebert <steffen@steffen-gebert.de> TYPO3 Developer Days 2010, Elmshorn Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 3. Introduction Your speakers Steffen Ritter Steffen Gebert Student, Freelancer Student, Freelancer Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 4. TYPO3 4.4 On the surface... t3skin in version 4.4 Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 5. Let‘s break the surface! http://www.flickr.com/photos/blackbird_hollow/3749443815/ Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 6. Previous state TYPO3 4.3 without t3skin „retroskin“ - styles of 3.x Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 7. Previous state TYPO3 4.3 with t3skin installed styles of v4.0 - 4.3 Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 8. Previous state TYPO3 4.3 „retroskin“ core t3skin t3skin = style + styles sheets sheets retroskin hardcoded in core EXT:t3skin only adds CSS to core CSS unnecessary CSS loaded, hard to maintain Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 9. TYPO3 User Experience Week 2009 Tasks of Team 3 extend skinning API remove all CSS from core split up CSS of t3skin use CSS icon sprites Fabien Udriot, Steffen Gebert, Thomas Allmer, André Wartmann, Michael Leibenson Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 10. Extend the skinning API Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 11. Skinning API Improvements Skins have to register: $TBE_STYLES[skins][extKey] = array(); Automatic inclusion from every skin: stylesheets/structure/*.css stylesheets/visual/*.css Add further directories: $TBE_STYLES[skins][extKey][stylesheetDirectories] Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 12. Skinning API CSS for your backend module Do not misuse skinning API for modules! No need for hacks: // Mis-using JScode to insert CSS _after_ skin. $this->doc->JScode = '<link rel="stylesheet" href="my.css" />' Use instead: $this->doc = t3lib_div::makeInstance('bigDoc'); $this->doc->getPageRenderer()->addCssFile(); Available since TYPO3 4.3 Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 13. Remove all CSS from core Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 14. Remove core CSS TYPO3 4.4 t3skin t3skin = styles sheets Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 15. Remove core CSS TYPO3 4.4 without t3skin „naked“ skin Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 16. Remove core CSS „naked“ skin benefits: no unneeded CSS transferred clean CSS as base for skins only demand: be able to install any skin Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 17. Split up t3skin CSS Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 18. CSS separation Criteria structure & visual by context Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 19. CSS separation Criteria structure visual width, height background position border top, right color margin, padding font Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 20. CSS separation Conclusion Benefit: better structure know what is defined where Drawback: enormous amount of HTTP-Requests Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 21. t3lib_compressor Features takes care of JS and CSS you have to concatenation enable it! minification gzip compression Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 22. t3lib_compressor gzip compression $TYPO3_CONF_VARS[BE][compressionLevel] = 5 has always been there now also used for CSS/JS resources needs .htaccess rules: <FilesMatch ".js.gzip$"> AddType "text/javascript" .gzip otherwise: naked BE </FilesMatch> <FilesMatch ".css.gzip$"> AddType "text/css" .gzip </FilesMatch> AddEncoding gzip .gzip Example: ext-all.js reduced from 642K to176K Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 23. Sprite Icons Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 24. Sprite Icons <img> is Sprites? history ;-) many icons combined into one image inclusion as background-image using CSS background-position to select proper icon .t3-icon { height: 16px; width: 16px; } .t3-icon-actions { background-image: url("t3-icon-actions.png"); } .t3-icon-actions.t3-icon-document-open { background-position: 0 -672px; } Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 25. Backend optimizations Speedup Task: Log in and open List module 1700 170 2200 850 85 1100 0 0 KByte HTTP Requests 0 IP-Packets v 4.3 v. 4.4 Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 26. Icons and Graphics new strategy - new technique Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 27. Icons and Graphics TYPO3 4.3 Icons in typo3/gfx/ and typo3/sysext/t3skin/gfx/ unstructured folders, chaotic filenames no overview no streamlined look many HTTP requests hardcoded <img>-tags in php classes Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 28. Icons and Graphics whishes and aims new iconset, streamlined look and feel structured filestructure for saving icons in fs reduce http requests on each BE call remove as much hardcoded html in BE-php classes easy use of TYPO3 icons in own modules fancy technical solution ==> implement an public to use sprite-icon-API Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 29. Icons and Graphics Problems arising? old functionality in t3lib_iconWorks not usable anymore all icons used in core have to be changed in php code (hardcoded image tags and sizes) sprites and controlling CSS have to be maintained Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 30. Icons and Graphics TYPO3 4.4 changed file structure clear naming scheme sprite icon API in t3lib_iconWorks (inclusion) manager API in t3lib_SpriteManager (handling) available icons, managing CSS and generating sprites no misuse of icons in wrong context Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 31. Icons and Graphics TYPO3 4.4 File structures / naming scheme moving icons to images/icons clear folder structure / naming adopted from freedesktop.org COPY an Icon and rename it matching your task instead of just using the icon dedicated to another action Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 32. Icons and Graphics Using sprites New API in t3lib_iconWorks for sprite usage t3lib_iconWorks::getSpriteIcon() replacing <img src= t3skin_iconWorks::skinImg> t3lib_iconWorks::getSpriteIconForRecord() replacing t3skin_iconWorks::getIconImage() t3lib_iconWorks::getSpriteIconForFile() Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 33. Icons and Graphics registering icons at SpriteManager addIconSprite(array $icons, $styleSheetFile) addSingleIcons(array $icons, $extKey = '') addTcaTypeIcon($table, $type, $iconFile) => all Icon-references should be relative to PATH_site Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 34. Icons and Graphics Using sprites Old function are "deprecated" make sure to adapt your extensions and BE-modules Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 35. Sprite API/Manager internals Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 36. Sprite API/Manager internals Using Sprites - How it works Sprite Icon Api (t3lib_iconWorks) (find iconname for file or record) is requested icon present? generate „bunch“ of CSS classes wrap it into HTML action-document-open t3-icon t3-icon-action t3-icon-document-open Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 37. Sprite API/Manager internals Icon available? requesting icon name <=> fileName how to know if an sprite icon is present? All icons present in the CURRENT system are placed in $TBE_STYLES['spriteIconApi']['iconsAvailable'] Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 38. Sprite API/Manager internals Overlays overlays are not generated anymore every overlay is an sprite icon itself only most important status overlay is automatically rendered every „normal“ icon can be overlayed Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 39. Sprite API/Manager internals SpriteManager generates cache of icons available provides static API to register own icon sprites, own single icons type-icons is meant to generate sprites of unsprited icons Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 40. Sprite API/Manager internals SpriteApi vs. SpriteManager Sprite API Sprite Manager • finding iconnames for files • manages all icons from • finding iconnames for records extensions and core • finding/building overlays • build cache and „available • building tags and css classes icon“ list • registers type-Icons for extending TCA • register single icons to be used => the actual „icon output“ • builds sprites and css from registered icons Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 41. Sprite API/Manager internals spriteIconGenerator_handler Interface t3lib_SpriteManager instanciates responsible to „rebuild“ all sprite-related caches. CSS files and one php-cache file may/should generate sprites used in the generated css file TYPO3 4.4: t3lib_spritemanager_SimpleHandler --> non spriting implementation Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 42. How To? In depth studies... Demonstrating the simplicity of the new technique Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 43. How To? In depth studies In depth Studies - How to... Adapting Page - Module to repesent your FE Layout Exchanging TYPO3 iconset Icons in own extensions: Own tables with TCA - Icons and TypeIcons New Types or Modules (Pages) in CoreTables Using own and core icons in BE-Modules Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 44. How To? In depth studies Adapting Page-Module to repesent your FE Layout create a new empty extension create folder structure as mentioned register your Extensions as skin write your CSS for page module EXT: pagemodulecss Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 45. How To? In depth studies Exchanging TYPO3 iconset create a new empty extension - as always :-) copy t3skin/images/icons/ to you extension replace all icons with the one you prefer optional: create sprites of your icons create CSS files mapping every icon to it‘s class last two points will be supported by extdeveval soon Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 46. How To? In depth studies Exchanging TYPO3 iconset unregister t3skin icons (extTables.php) unset( $TBE_STYLES[skins][t3skin][stylesheetDirectories][sprites] ); register yourself as a skin extension $TBE_STYLES['skins']['pagemodulecss'] =array(); $TBE_STYLES['skins']['myskin']['name']= myskin; Have fun with your new icons Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 47. How To? In depth studies Own Extensions - TYPE-Icon Uses Cases: Own PageType, Own „Contains Module“ in Pages, new Type for tt_content .... NEED to Update your Extension for v4.4 add following code to extTables.php t3lib_SpriteManager::addTcaTypeIcon($table, $type, t3lib_extMgm::extRelPath($EXT_KEY) . /path/to/my/icon.png) Example: t3lib_spriteManager::addTcaTypeIcon('pages', 'contains-news' , $pathToNewNewsIcon); Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 48. Further reading Web resources doc_core_skinning (work in progress) http://forge.typo3.org/projects/show/typo3v4-doc_core_skinning EXT:pagemodulecss http://forge.typo3.org/projects/show/extension-pagemodulecss slides will be available on slideshare.net Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share
  • 49. ????? ?? ? ?? ?? ? Backend-Skin in TYPO3 4.4: Inspiring people to Technical changes under the hood share