Added feature #13379: Introduced a Sprite Icon API to render icons from sprites ...
authorBenni Mack <benni.mack@typo3.org>
Sun, 2 May 2010 18:42:05 +0000 (18:42 +0000)
committerBenni Mack <benni.mack@typo3.org>
Sun, 2 May 2010 18:42:05 +0000 (18:42 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7511 709f56b5-9817-0410-a4d7-c38de5d9e867

59 files changed:
ChangeLog
NEWS.txt
t3lib/class.t3lib_iconworks.php
t3lib/config_default.php
t3lib/stddb/tables.php
typo3/sysext/cms/ext_tables.php
typo3/sysext/t3skin/ext_tables.php
typo3/sysext/t3skin/images/sprites/t3-icon-actions-backend.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-cache.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-document.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-edit.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-go.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-insert.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-list.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-move.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-page.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-system.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-template.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-version.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-actions-view.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-apps-filetree.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-apps-pagetree.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-apps-toolbar.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-mimetypes-text.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-mimetypes-x.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-places-folder.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-status-dialog.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-status-overlay.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-status-status.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-status-version.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-status-warning.png [new file with mode: 0644]
typo3/sysext/t3skin/images/sprites/t3-icon-status-workspace.png [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/_t3-icon.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-backend.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-cache.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-document.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-edit.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-go.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-insert.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-list.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-move.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-page.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-system.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-template.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-version.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-view.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-apps-filetree.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-apps-pagetree.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-apps-toolbar.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-mimetypes-text.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-mimetypes-x.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-places-folder.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-dialog.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-overlay.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-status.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-version.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-warning.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-workspace.css [new file with mode: 0644]
typo3/template.php

index 42ed811..3fca7a5 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-05-02  Benjamin Mack  <benni@typo3.org>
+
+       * Added feature #13379: Introduced a Sprite Icon API to render icons from sprites (Thanks to Thomas Allmer and Steffen Ritter)
+
 2010-05-02  Steffen Kamper  <info@sk-typo3.de>
 
        * Fixed bug #14277: Improve t3lib_compressor (thanks to Steffen Gebert)
index 942e761..14d3f8c 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -76,6 +76,9 @@ Development
 
        * The debug in BE was enhanced. There is a new debug console, which will show each debug in a single tab. The console will pop up as soon a debug statement is present.
        
+       * We now a new API in place to generate HTML <span> tags with corresponding CSS classes in order to display previously created sprite images in the right background position. Make sure to have a look at "t3lib_iconWorks::getSpriteIconForRecord($table, $row)", "t3lib_iconWorks::getSpriteIconForFile('myimage.png')", and "t3lib_iconWorks::getSpriteIcon('actions-document-open')".
+
+
 TypoScript changes
 ==================
 
index 9c74873..82dd894 100644 (file)
  */
 final class t3lib_iconWorks    {
 
+       protected static $tcaSpriteIconNames = array();
+
+       public static $fileSpriteIconNames = array(
+               'htm'   => 'mimetype-text-htm',
+               'html'  => 'mimetype-text-htm',
+               'css'   => 'mimetype-text-css',
+               'js'    => 'mimetype-text-js',
+               'csv'   => 'mimetype-text-csv',
+               'xml'   => 'mimetype-text-xml',
+               'php'   => 'mimetype-text-php',
+               'php6'  => 'mimetype-text-php',
+               'php5'  => 'mimetype-text-php',
+               'php4'  => 'mimetype-text-php',
+               'php3'  => 'mimetype-text-php',
+               'inc'   => 'mimetype-text-php',
+               'ts'    => 'mimetype-text-ts',
+               'txt'   => 'mimetype-text-text',
+               'class' => 'mimetype-text-text',
+               'tmpl'  => 'mimetype-text-text',
+               'jpg'   => 'mimetype-media-image-jpg',
+               'jpeg'  => 'mimetype-media-image-jpg',
+               'gif'   => 'mimetype-media-image-gif',
+               'png'   => 'mimetype-media-image-png',
+               'bmp'   => 'mimetype-media-image-bmp',
+               'tif'   => 'mimetype-media-image',
+               'tga'   => 'mimetype-media-image',
+               'psd'   => 'mimetype-media-image',
+               'eps'   => 'mimetype-media-image',
+               'avi'   => 'mimetype-media-video-avi',
+               'mpg'   => 'mimetype-media-video',
+               'mpeg'  => 'mimetype-media-video',
+               'mov'   => 'mimetype-media-video',
+               'wav'   => 'mimetype-media-audio',
+               'mp3'   => 'mimetype-media-audio',
+               'mid'   => 'mimetype-media-audio',
+               'swf'   => 'mimetype-media-flash',
+               'swa'   => 'mimetype-media-flash',
+               'exe'   => 'mimetype-executable-executable',
+               'com'   => 'mimetype-executable-executable',
+               't3x'   => 'mimetype-compressed-t3x',
+               't3d'   => 'mimetype-compressed-t3d',
+               'zip'   => 'mimetype-compressed-compressed',
+               'tgz'   => 'mimetype-compressed-compressed',
+               'gz'    => 'mimetype-compressed-compressed',
+               'pdf'   => 'mimetype-word-pdf',
+               'doc'   => 'mimetype-word-word',
+               'sxw'   => 'mimetype-word-word',
+               'rtf'   => 'mimetype-word-word',
+               'xls'   => 'mimetype-spreadsheet-spreadsheet',
+               'sxc'   => 'mimetype-spreadsheet-spreadsheet',
+               'ttf'   => 'mimetype-font-font',
+               'ppt'   => 'mimetype-presentation-presentation',
+               'mount' => 'apps-filetree-mount',
+               'folder'  => 'apps-filetree-folder-default',
+               'default' => 'mimetype-other-other'
+       );
+
        /**
         * Returns an icon image tag, 18x16 pixels, based on input information.
         * This function is recommended to use in your backend modules.
@@ -543,5 +600,453 @@ final class t3lib_iconWorks       {
                        @ImageGif($im, $path);
                }
        }
+
+
+       /**********************************************
+        *         SPRITE ICON API
+        *
+        * The Sprite Icon API helps you to quickly get the HTML for any icon you want
+        * this is typically wrapped in a <span> tag with corresponding CSS classes that
+        * will be responsible for the
+        *
+        * There are three ways to use this API:
+        *
+        * 1) for any given TCA record
+        *    $spriteIconHtml = t3lib_iconWorks::getSpriteIconForRecord('pages', $row);
+        *
+        * 2) for any given file
+        *    $spriteIconHtml = t3lib_iconWorks::getSpriteIconForFile('myimage.png');
+        *
+        * 3) for any other icon you know the name
+        *    $spriteIconHtml = t3lib_iconWorks::getSpriteIcon('actions-document-open');
+        *
+        **********************************************/
+
+       /**
+        * This generic method is used throughout the TYPO3 Backend to show icons in any variation which are not
+        * bound to any file type (see getSpriteIconForFile) or database record (see getSpriteIconForRecord)
+        *
+        * Generates a HTML tag with proper CSS classes. The TYPO3 skin has defined these CSS classes
+        * already to have a pre-defined background image, and the correct background-position to show
+        * the necessary icon.
+        *
+        * @param       string  $iconName       the name of the icon to fetch
+        * @param       array   $options        an associative array with additional options and attributes for the tag. by default, the key is the name of the attribute, and the value is the parameter string that is set. However, there are some additional special reserved keywords that can be used as keys: "html" (which is the HTML that will be inside the icon HTML tag), "tagName" (which is an alternative tagName than "span"), and "class" (additional class names that will be merged with the sprite icon CSS classes)
+        * @param       array   $overlays       an associative array with the icon-name as key, and the options for this overlay as an array again (see the parameter $options again)
+        * @return      string  the full HTML tag (usually a <span>)
+        * @access public
+        */
+       public static function getSpriteIcon($iconName, $options = array(), $overlays = array()) {
+               $innerHtml = (isset($options['html'])    ? $options['html']    : '');
+               $tagName   = (isset($options['tagName']) ? $options['tagName'] : 'span');
+
+                       // deal with the overlays
+               if (count($overlays)) {
+                       foreach ($overlays as $overlayIconName => $overlayOptions) {
+                               $overlayOptions['html']  = $innerHtml;
+                               $overlayOptions['class'] = (isset($overlayOptions['class']) ? $overlayOptions['class'] . ' ': '') . 't3-icon-overlay';
+                               $innerHtml = self::getSpriteIcon($overlayIconName, $overlayOptions);
+                       }
+               }
+
+                       // create the CSS class
+               $options['class'] = self::getSpriteIconClasses($iconName) . (isset($options['class']) ? ' ' . $options['class'] : '');
+
+               unset($options['html']);
+               unset($options['tagName']);
+               return self::buildSpriteHtmlIconTag($options, $innerHtml, $tagName);
+       }
+
+
+       /**
+        * This method is used throughout the TYPO3 Backend to show icons for a file type
+        *
+        * Generates a HTML tag with proper CSS classes. The TYPO3 skin has defined these CSS classes
+        * already to have a pre-defined background image, and the correct background-position to show
+        * the necessary icon.
+        *
+        * @param       string  $fileExtension  the name of the icon to fetch, can be a file extension, full file path or one of the special keywords "folder" or "mount"
+        * @param       array   $options        an associative array with additional options and attributes for the tag. by default, the key is the name of the attribute, and the value is the parameter string that is set. However, there are some additional special reserved keywords that can be used as keys: "html" (which is the HTML that will be inside the icon HTML tag), "tagName" (which is an alternative tagName than "span"), and "class" (additional class names that will be merged with the sprite icon CSS classes)
+        * @return      string  the full HTML tag (usually a <span>)
+        * @access public
+        */
+       public static function getSpriteIconForFile($fileExtension, $options = array()) {
+               $innerHtml = (isset($options['html'])    ? $options['html']    : '');
+               $tagName   = (isset($options['tagName']) ? $options['tagName'] : 'span');
+
+                       // create the CSS class
+               $options['class'] = self::mapFileExtensionToSpriteIconClass($fileExtension) . (isset($options['class']) ? ' ' . $options['class'] : '');
+
+               unset($options['html']);
+               unset($options['tagName']);
+               return self::buildSpriteHtmlIconTag($options, $innerHtml, $tagName);
+       }
+
+
+       /**
+        * Generates the spriteicon name for a given path or fileExtension
+        * usually called from getSpriteIconForFile
+        *
+        * @param       string          fileExtension can be jpg, gif etc, but also be 'mount' or 'folder', but can also be a full path which will be resolved then
+        * @return      string          the string of the CSS class, see t3lib_iconworks::$fileSpriteIconNames
+        */
+       public static function mapFileExtensionToSpriteIconClass($fileExtension) {
+
+                       // if the file is a whole file with name etc (mainly, if it has a "." or a "/"),
+                       // then it is checked whether it is a valid directory
+               if (strpos($fileExtension, '.') !== FALSE || strpos($fileExtension, '/') !== FALSE) {
+
+                               // check if it is a directory
+                       $filePath = dirname(t3lib_div::getIndpEnv('SCRIPT_FILENAME')) . '/' . $GLOBALS['BACK_PATH'] . $fileExtension;
+                       $path = t3lib_div::resolveBackPath($filePath);
+                       if (is_dir($path) || substr($fileExtension, -1) === '/' || substr($fileExtension, -1) === '\\') {
+                               $fileExtension = 'folder';
+                       } else if (($pos = strrpos($fileExtension, '.')) !== FALSE) {
+                               $fileExtension = strtolower(substr($fileExtension, $pos + 1));
+                       } else {
+                               $fileExtension = 'default';
+                       }
+               }
+
+                       // if the file extension is not valid
+                       // then use the default one
+               if (!isset(self::$fileSpriteIconNames[$fileExtension])) {
+                       $fileExtension = 'default';
+               }
+               $iconName = self::$fileSpriteIconNames[$fileExtension];
+               return self::getSpriteIconClasses($iconName);
+       }
+
+
+       /**
+        * This method is used throughout the TYPO3 Backend to show icons for a DB record
+        *
+        * Generates a HTML tag with proper CSS classes. The TYPO3 skin has defined these CSS classes
+        * already to have a pre-defined background image, and the correct background-position to show
+        * the necessary icon.
+        *
+        * @param       string  $table  the TCA table name
+        * @param       array   $row    the DB record of the TCA table
+        * @param       array   $options        an associative array with additional options and attributes for the tag. by default, the key is the name of the attribute, and the value is the parameter string that is set. However, there are some additional special reserved keywords that can be used as keys: "html" (which is the HTML that will be inside the icon HTML tag), "tagName" (which is an alternative tagName than "span"), and "class" (additional class names that will be merged with the sprite icon CSS classes)
+        * @return      string  the full HTML tag (usually a <span>)
+        * @access public
+        */
+       public static function getSpriteIconForRecord($table, $row, $options = array()) {
+               $innerHtml = (isset($options['html'])    ? $options['html']    : '');
+               $tagName   = (isset($options['tagName']) ? $options['tagName'] : 'span');
+
+                       // overlay this record icon with the status of the row
+               $overlaySpriteIconName = self::mapRecordOverlayToSpriteIconName($table, $row);
+               if ($overlaySpriteIconName) {
+                       $overlayOptions = array(
+                               'html'  => $innerHtml,
+                               'class' => 't3-icon-overlay'
+                       );
+                       $innerHtml = self::getSpriteIcon($overlaySpriteIconName, $overlayOptions);
+               }
+
+                       // fetch the name for the CSS class, based on the $row
+               $options['class'] = self::mapRecordTypeToSpriteIconClass($table, $row) . (isset($options['class']) ? ' ' . $options['class'] : '');
+
+               unset($options['html']);
+               unset($options['tagName']);
+               return self::buildSpriteHtmlIconTag($options, $innerHtml, $tagName);
+       }
+
+
+       /**
+        * this helper functions looks up the column that is used for the type of
+        * the chosen TCA table. And then fetches the corresponding class
+        * based on the chosen iconsprite class in this TCA
+        * The TCA looks up
+        *   - [ctrl][typeicon_column]
+        *   -
+        * This method solely takes care of the type of this record, not any
+        * statuses, used for overlays.
+        *
+        * see t3lib/stddb/tables.php for an example with the TCA table "pages"
+        *
+        * @param       string  $table  the TCA table
+        * @param       array   $row    the selected record
+        * @return      string  the CSS class for the sprite icon of that DB record
+        * @access      private
+        **/
+       protected static function mapRecordTypeToSpriteIconClass($table, $row) {
+               self::buildTcaSpriteIconNames();
+               if (isset($GLOBALS['TCA'][$table]['ctrl']['typeicon_column'])) {
+                       $column = $GLOBALS['TCA'][$table]['ctrl']['typeicon_column'];
+
+                       $recordType = $row[$column];
+
+                               // workaround to give nav_hide pages a complete different icon
+                               // although it's not a separate doctype
+                       if ($table === 'pages' && $row['nav_hide']) {
+                               $recordType .= '-hideinmenu';
+                       }
+
+                       $iconName = $GLOBALS['TCA'][$table]['ctrl']['typeicon_classes'][$recordType];
+                       if (!$iconName && in_array('tcarecords-' . $table . '-' . $recordType, self::$tcaSpriteIconNames)) {
+                               $iconName = 'tcarecords-' . $table . '-' . $recordType;
+                       }
+               } else {
+                       $iconName = $GLOBALS['TCA'][$table]['ctrl']['typeicon_classes'][0];
+                       if (!$iconName && in_array('tcarecords-' . $table . '-default', self::$tcaSpriteIconNames)) {
+                               $iconName = 'tcarecords-' . $table . '-default';
+                       }
+               }
+               return self::getSpriteIconClasses(($iconName ? $iconName : 'status-status-icon-missing'));
+       }
+
+
+       /**
+        * this helper functions checks if the DB record ($row) has any special status
+        * based on the TCA settings like hidden, starttime etc, and then returns a specific
+        * Sprite icon class for the overlay of this DB record
+        * This method solely takes care of the overlay of this record, not any type
+        *
+        * Please note that this only returns one overlay, one status, that is prioritized
+        * by $GLOBALS['TYPO3_CONF_VARS']['BE']['spriteIconRecordOverlayPriorities']
+        * We wanted to not have these icons blown over by tons of overlays, so this is limited
+        * to just one.
+        *
+        * see t3lib/config_default.php for the default options, you will find
+        * $GLOBALS['TYPO3_CONF_VARS']['BE']['spriteIconRecordOverlayNames'] that shows
+        * the list of CSS classes that will be used for the sprites, mapped to the statuses here
+        *
+        * @param       string  $table  the TCA table
+        * @param       array   $row    the selected record
+        * @return      string  the CSS class for the sprite icon of that DB record
+        * @access      private
+        */
+       protected static function mapRecordOverlayToSpriteIconName($table, $row) {
+               $tcaCtrl = $GLOBALS['TCA'][$table]['ctrl'];
+
+                       // Calculate for a given record the actual visibility at the moment
+               $status = array(
+                       'hidden'           => FALSE,
+                       'starttime'        => FALSE,
+                       'endtime'          => FALSE,
+                       'futureendtime'    => FALSE,
+                       'fe_group'         => FALSE,
+                       'deleted'          => FALSE,
+                       'protectedSection' => FALSE,
+                       'nav_hide'         => ($row['nav_hide'] ? TRUE : FALSE),
+                       'noIconFound'      => ($row['_NO_ICON_FOUND'] ? TRUE : FALSE),
+               );
+
+                       // Icon state based on "enableFields":
+               if (is_array($tcaCtrl['enablecolumns'])) {
+                       $enCols = $tcaCtrl['enablecolumns'];
+                               // If "hidden" is enabled:
+                       if ($tcaCtrl['enablecolumns']['disabled'] && $row[$tcaCtrl['enablecolumns']['disabled']]) {
+                               $status['hidden'] = TRUE;
+                       }
+                               // If a "starttime" is set and higher than current time:
+                       if ($tcaCtrl['enablecolumns']['starttime'] && $GLOBALS['EXEC_TIME'] < intval($row[$tcaCtrl['enablecolumns']['starttime']])) {
+                               $status['starttime'] = TRUE;
+                       }
+
+                               // If an "endtime" is set
+                       if ($tcaCtrl['enablecolumns']['endtime']) {
+                               if (intval($row[$tcaCtrl['enablecolumns']['endtime']]) > 0) {
+                                       if (intval($row[$tcaCtrl['enablecolumns']['endtime']]) < $GLOBALS['EXEC_TIME']) {
+                                                       // End-timing applies at this point.
+                                               $status['endtime'] = TRUE;
+                                       } else {
+                                                       // End-timing WILL apply in the future for this element.
+                                               $status['futureendtime'] = TRUE;
+                                       }
+                               }
+                       }
+                               // If a user-group field is set
+                       if ($tcaCtrl['enablecolumns']['fe_group'] && $row[$tcaCtrl['enablecolumns']['fe_group']]) {
+                               $status['fe_group'] = TRUE;
+                       }
+               }
+
+                       // If "deleted" flag is set (only when listing records which are also deleted!)
+               if ($row[$tcaCtrl['delete']]) {
+                       $status['deleted'] = TRUE;
+               }
+
+                       // Detecting extendToSubpages (for pages only)
+               if ($table == 'pages' && $row['extendToSubpages'] && ($status['hidden'] || $status['starttime'] || $status['endtime'] || $status['futureendtime'] || $status['fe_group'])) {
+                       $status['protectedSection'] = TRUE;
+               }
+
+
+                       // now only show the status with the highest priority
+               $priorities = $GLOBALS['TYPO3_CONF_VARS']['BE']['spriteIconRecordOverlayPriorities'];
+
+               $iconName = '';
+               foreach ($priorities as $priority) {
+                       if ($status[$priority]) {
+                               $iconName = $GLOBALS['TYPO3_CONF_VARS']['BE']['spriteIconRecordOverlayNames'][$priority];
+                               break;
+                       }
+               }
+
+               return $iconName;
+       }
+
+
+
+       /**
+        * generic method to create the final CSS classes based on the sprite icon name
+        * with the base class and splits the name into parts
+        * is usually called by the methods that are responsible for fetching the names
+        * out of the file name, or the record type
+        *
+        * @param       string  $name   iconname like 'actions-document-new'
+        * @return      string  a list of all CSS classes needed for the HTML tag
+        * @access public
+        */
+       public static function getSpriteIconClasses($iconName) {
+               $cssClasses = $baseCssClass = 't3-icon';
+               $parts = explode('-', $iconName);
+
+               if (count($parts) > 1) {
+                               // will be something like "t3-icon-actions"
+                       $cssClasses .= ' ' . ($baseCssClass . '-' . $parts[0]);
+                               // will be something like "t3-icon-actions-document"
+                       $cssClasses .= ' ' . ($baseCssClass . '-' . $parts[0] . '-' . $parts[1]);
+                               // will be something like "t3-icon-document-new"
+                       $cssClasses .= ' ' . ($baseCssClass . '-' . substr($iconName, strlen($parts[0]) + 1));
+               }
+               return $cssClasses;
+       }
+
+
+       /**
+        * low level function that generates the HTML tag for the sprite icon
+        * is usually called by the three API classes (getSpriteIcon, getSpriteIconForFile, getSpriteIconForRecord)
+        * it does not care about classes or anything else, but just plainly builds the HTML tag
+        *
+        * @param       array   $tagAttributes  an associative array of additional tagAttributes for the HTML tag
+        * @param       string  $innerHtml (optional)   the content within the tag, a "&nbsp;" by default
+        * @param       string  $tagName (optional)     the name of the HTML element that should be used (span by default)
+        */
+       protected static function buildSpriteHtmlIconTag($tagAttributes, $innerHtml = '&nbsp;', $tagName = 'span') {
+               $attributes = '';
+               foreach ($tagAttributes as $attribute => $value) {
+                       $attributes .= ' ' . htmlspecialchars($attribute) . '="' . htmlspecialchars($value) . '"';
+               }
+               return '<' . $tagName . $attributes . '>' . $innerHtml . '</' . $tagName . '>';
+       }
+
+
+
+       /**
+        * this method creates SpriteIcon names for all tables in TCA (including their possible type-icons)
+        * where there is no "typeicon_classes" of this TCA table ctrl section and caches the result to the TYPO3 registry
+        * 
+        * Note: This method is just preliminary and will be extracted in the future to go to t3lib_spriteGenerator
+        *
+        * @return void
+        */
+       protected static function buildTcaSpriteIconNames() {
+                       // if the data is already loaded during this request,
+                       // there is nothing to do
+               if (!count(self::$tcaSpriteIconNames)) {
+
+                               // step one: check with registry if an update is needed
+                       $registry = t3lib_div::makeInstance('t3lib_Registry');
+                       $storedHash = $registry->get('core', 'tcaSpriteIconNamesTcaHash', '');
+                       $TCAtables = array_keys($GLOBALS['TCA']);
+                       $currentHash = md5(serialize($TCAtables)) . 'A';
+
+                               // the fileName is prefixed with since the concatenator orders files per name
+                       $cssTcaFile = PATH_site . 'typo3temp/sprites/zextensions.css';
+
+                               // if update would be needed or file does not exist
+                       if ($storedHash != $currentHash || !file_exists($cssTcaFile)) {
+
+                               $styleSheetTemplate = '
+       .t3-icon-###TABLE###-###TYPE### {
+               background-position: 0px 0px !important;
+               background-image: url(\'###IMAGE###\') !important;
+       }
+';
+
+                                       // delete old tempFiles
+                               @unlink($cssTcaFile);
+
+                                       // contains the content of the CSS file
+                               $styleSheetData = '';
+
+                                       // backpath from the stylesheet file ($cssTcaFile) to typo3 dir
+                                       // in order to set the background-image URL paths correct
+                               $iconPath = '../../' . TYPO3_mainDir;
+
+                                       // path (relative from typo3 dir) for skin-Images
+                               if (isset($GLOBALS['TBE_STYLES']['skinImgAutoCfg']['relDir'])) {
+                                       $skinPath = $GLOBALS['TBE_STYLES']['skinImgAutoCfg']['relDir'];
+                               } else {
+                                       $skinPath = '';
+                               }
+
+                                       // check every table in the TCA, if an icon is needed
+                               foreach ($TCAtables as $tableName) {
+
+                                               // this method is only needed for TCA tables where
+                                               //  typeicon_classes are not configured
+                                       if (!is_array($GLOBALS['TCA'][$tableName]['ctrl']['typeicon_classes'])) {
+                                               $tcaCtrl = $GLOBALS['TCA'][$tableName]['ctrl'];
+
+                                               $template = str_replace('###TABLE###', $tableName, $styleSheetTemplate);
+
+                                                       // adding the default Icon (without types)
+                                               if (isset($tcaCtrl['iconfile'])) {
+                                                               // in CSS wie need a path relative to the css file
+                                                               // [TCA][ctrl][iconfile] defines icons without path info to reside in /gfx/i/
+                                                       if (strpos($tcaCtrl['iconfile'], '/') !== FALSE) {
+                                                               $icon = $tcaCtrl['iconfile'];
+                                                       } else {
+                                                               $icon = $skinPath .'gfx/i/' . $tcaCtrl['iconfile'];
+                                                       }
+
+                                                       $icon = t3lib_div::resolveBackPath($iconPath . $icon);
+
+                                                               // saving default icon
+                                                       $stylesString = str_replace('###TYPE###', 'default', $template);
+                                                       $stylesString = str_replace('###IMAGE###', $icon, $stylesString);
+                                                       $styleSheetData .= $stylesString;
+                                                       self::$tcaSpriteIconNames[] = 'tcarecords-'. $tableName . '-default';
+                                               }
+
+                                                       // if records types are available, register them
+                                               if (isset($tcaCtrl['typeicon_column']) && is_array($tcaCtrl['typeicons'])) {
+                                                       foreach ($tcaCtrl['typeicons'] as $type => $icon) {
+
+                                                                       // in CSS wie need a path relative to the css file
+                                                                       // [TCA][ctrl][iconfile] defines icons without path info to reside in /gfx/i/
+                                                               if (strpos($icon, '/') === FALSE) {
+                                                                       $icon = $skinPath .'gfx/i/' . $icon;
+                                                               }
+
+                                                               $icon = t3lib_div::resolveBackPath($iconPath . $icon);
+                                                               $stylesString = str_replace('###TYPE###', $type, $template);
+                                                               $stylesString = str_replace('###IMAGE###', $icon, $stylesString);
+                                                                       // saving type icon
+                                                               $styleSheetData .= $stylesString;
+                                                               self::$tcaSpriteIconNames[] = 'tcarecords-' . $tableName . '-' . $type;
+                                                       }
+                                               }
+                                       }
+                               }
+
+                                       // cache results in the CSS file
+                               t3lib_div::writeFileToTypo3tempDir($cssTcaFile, $styleSheetData);
+
+                                       // update registry
+                               $registry->set('core', 'tcaSpriteIconNames', serialize(self::$tcaSpriteIconNames));
+                               $registry->set('core', 'tcaSpriteIconNamesTcaHash', $currentHash);
+
+                       } else {
+                                       // if no update is needed just load the old results
+                               self::$tcaSpriteIconNames = unserialize($registry->get('core', 'tcaSpriteIconNames'));
+                       }
+               }
+       }
 }
 ?>
index d2c4a52..1664091 100644 (file)
@@ -287,6 +287,19 @@ $TYPO3_CONF_VARS = array(
                        'ExtDirect::route' => 't3lib/extjs/class.t3lib_extjs_extdirectrouter.php:t3lib_extjs_ExtDirectRouter->route',
                ),
                'XCLASS' => array(),                                    // See 'Inside TYPO3' document for more information.
+               'spriteIconRecordOverlayPriorities' => array('hidden', 'starttime', 'endtime', 'futureendtime', 'fe_group', 'protectedSection'),
+               'spriteIconRecordOverlayNames' => array(        
+                       'hidden'           => 'status-overlay-hidden',
+                       'fe_group'         => 'status-overlay-access-restricted',
+                       'starttime'        => 'status-overlay-scheduled-start',
+                       'endtime'          => 'status-overlay-scheduled-end',
+                       'futureendtime'    => 'status-overlay-scheduled-future-end',
+                       'readonly'         => 'status-overlay-locked',
+                       'deleted'          => 'status-overlay-deleted',
+                       'missing'          => 'status-overlay-missing',
+                       'translated'       => 'status-overlay-translated',
+                       'protectedSection' => 'status-overlay-includes-subpages',
+               ),
        ),
        'FE' => array(                  // Configuration for the TypoScript frontend (FE). Nothing here relates to the administration backend!
                'png_to_gif' => FALSE,                                  // Boolean. Enables conversion back to gif of all png-files generated in the frontend libraries. Notice that this leaves an increased number of temporary files in typo3temp/
index 69e1344..ae2eadf 100644 (file)
@@ -147,7 +147,31 @@ $TCA['pages'] = array(
                'prependAtCopy' => 'LLL:EXT:lang/locallang_general.php:LGL.prependAtCopy',
                'cruser_id' => 'cruser_id',
                'editlock' => 'editlock',
-               'useColumnsForDefaultValues' => 'doktype'
+               'useColumnsForDefaultValues' => 'doktype',
+               'typeicon_column' => 'doktype',
+               'typeicon_classes' => array(
+                       '1' => 'apps-pagetree-page-default',
+                       '1-hideinmenu' => 'apps-pagetree-page-default-hideinmenu',
+                       '3' => 'apps-pagetree-page-shortcut-external',
+                       '3-hideinmenu' => 'apps-pagetree-page-shortcut-external-hideinmenu',
+                       '4' => 'apps-pagetree-page-shortcut',
+                       '4-hideinmenu' => 'apps-pagetree-page-shortcut-hideinmenu',
+                       '6' => 'apps-pagetree-page-backend-user',
+                       '6-hideinmenu' => 'apps-pagetree-page-backend-user-hideinmenu',
+                       '7' => 'apps-pagetree-page-mountpoint',
+                       '7-hideinmenu' => 'apps-pagetree-page-mountpoint-hideinmenu',
+                       '199' => 'apps-pagetree-spacer',
+                       '199-hideinmenu' => 'apps-pagetree-spacer-hideinmenu',
+                       '254' => 'apps-pagetree-folder-default',
+                       '254-hideinmenu' => 'apps-pagetree-folder-default-hideinmenu',
+                       '255' => 'apps-pagetree-dust-bin',
+                       '255-hideinmenu' => 'apps-pagetree-dust-bin-hideinmenu',
+               ),
+               'typeicons' => array(
+                       '1' => 'pages.gif',
+                       '254' => 'sysf.gif',
+                       '255' => 'recycler.gif',
+               )
        ),
        'interface' => array(
                'showRecordFieldList' => 'doktype,title',
index e22713f..8b219e6 100755 (executable)
@@ -675,6 +675,27 @@ $TCA['tt_content'] = array (
                        'fe_group' => 'fe_group',
                ),
                'typeicon_column' => 'CType',
+               'typeicon_classes' => array(
+                       'header' => 'mimetypes-x-content-header',
+                       'textpic' => 'mimetypes-x-content-text-picture',
+                       'image' => 'mimetypes-x-content-image',
+                       'bullets' => 'mimetypes-x-content-list-bullets',
+                       'table' => 'mimetypes-x-content-table',
+                       'splash' => 'mimetypes-x-content-splash',
+                       'uploads' => 'mimetypes-x-content-uploads',
+                       'multimedia' => 'mimetypes-x-content-multimedia',
+                       'media' => 'mimetypes-x-content-multimedia',
+                       'menu' => 'mimetypes-x-content-menu',
+                       'list' => 'mimetypes-x-content-plugin',
+                       'mailform' => 'mimetypes-x-content-form',
+                       'search' => 'mimetypes-x-content-search',
+                       'login' => 'mimetypes-x-content-login',
+                       'shortcut' => 'mimetypes-x-content-link',
+                       'script' => 'mimetypes-x-content-script',
+                       'div' => 'mimetypes-x-content-divider',
+                       'html' => 'mimetypes-x-content-html',
+                       'text' => 'mimetypes-x-content-text',
+               ),
                'typeicons' => array (
                        'header' => 'tt_content_header.gif',
                        'textpic' => 'tt_content_textpic.gif',
@@ -825,6 +846,10 @@ $TCA['sys_template'] = array (
                        'endtime' => 'endtime'
                ),
                'typeicon_column' => 'root',
+               'typeicon_classes' => array(
+                       '0' => 'mimetypes-x-content-template-extension',
+                       '1' => 'mimetypes-x-content-template',
+               ),
                'typeicons' => array (
                        '0' => 'template_add.gif'
                ),
index 623b404..79afe74 100644 (file)
@@ -13,6 +13,8 @@ if (TYPO3_MODE == 'BE' || (TYPO3_MODE == 'FE' && isset($GLOBALS['BE_USER']) && $
        $presetSkinImgs = is_array($TBE_STYLES['skinImg']) ?
                $TBE_STYLES['skinImg'] :
                array();
+               
+       $TBE_STYLES['skins'][$_EXTKEY]['stylesheetDirectories']['sprites'] = 'EXT:t3skin/stylesheets/sprites/';
 
        /**
         * Setting up backend styles and colors
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-backend.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-backend.png
new file mode 100644 (file)
index 0000000..a6b2c6b
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-backend.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-cache.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-cache.png
new file mode 100644 (file)
index 0000000..d11ff58
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-cache.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-document.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-document.png
new file mode 100644 (file)
index 0000000..acb0c89
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-document.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-edit.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-edit.png
new file mode 100644 (file)
index 0000000..c117d45
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-edit.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-go.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-go.png
new file mode 100644 (file)
index 0000000..9a46661
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-go.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-insert.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-insert.png
new file mode 100644 (file)
index 0000000..11e6bb4
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-insert.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-list.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-list.png
new file mode 100644 (file)
index 0000000..350bccb
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-list.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-move.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-move.png
new file mode 100644 (file)
index 0000000..d68140d
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-move.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-page.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-page.png
new file mode 100644 (file)
index 0000000..5788390
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-page.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-system.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-system.png
new file mode 100644 (file)
index 0000000..f505865
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-system.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-template.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-template.png
new file mode 100644 (file)
index 0000000..6854c2d
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-template.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-version.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-version.png
new file mode 100644 (file)
index 0000000..e2b67a8
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-version.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-actions-view.png b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-view.png
new file mode 100644 (file)
index 0000000..2b6670a
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-actions-view.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-apps-filetree.png b/typo3/sysext/t3skin/images/sprites/t3-icon-apps-filetree.png
new file mode 100644 (file)
index 0000000..baf3896
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-apps-filetree.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-apps-pagetree.png b/typo3/sysext/t3skin/images/sprites/t3-icon-apps-pagetree.png
new file mode 100644 (file)
index 0000000..b9423b5
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-apps-pagetree.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-apps-toolbar.png b/typo3/sysext/t3skin/images/sprites/t3-icon-apps-toolbar.png
new file mode 100644 (file)
index 0000000..e40380e
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-apps-toolbar.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-mimetypes-text.png b/typo3/sysext/t3skin/images/sprites/t3-icon-mimetypes-text.png
new file mode 100644 (file)
index 0000000..af7b1eb
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-mimetypes-text.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-mimetypes-x.png b/typo3/sysext/t3skin/images/sprites/t3-icon-mimetypes-x.png
new file mode 100644 (file)
index 0000000..b2d8ce1
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-mimetypes-x.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-places-folder.png b/typo3/sysext/t3skin/images/sprites/t3-icon-places-folder.png
new file mode 100644 (file)
index 0000000..8ae3d13
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-places-folder.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-status-dialog.png b/typo3/sysext/t3skin/images/sprites/t3-icon-status-dialog.png
new file mode 100644 (file)
index 0000000..7b0f263
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-status-dialog.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-status-overlay.png b/typo3/sysext/t3skin/images/sprites/t3-icon-status-overlay.png
new file mode 100644 (file)
index 0000000..0f7b9a9
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-status-overlay.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-status-status.png b/typo3/sysext/t3skin/images/sprites/t3-icon-status-status.png
new file mode 100644 (file)
index 0000000..9158376
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-status-status.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-status-version.png b/typo3/sysext/t3skin/images/sprites/t3-icon-status-version.png
new file mode 100644 (file)
index 0000000..9edba10
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-status-version.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-status-warning.png b/typo3/sysext/t3skin/images/sprites/t3-icon-status-warning.png
new file mode 100644 (file)
index 0000000..3602f82
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-status-warning.png differ
diff --git a/typo3/sysext/t3skin/images/sprites/t3-icon-status-workspace.png b/typo3/sysext/t3skin/images/sprites/t3-icon-status-workspace.png
new file mode 100644 (file)
index 0000000..75899fe
Binary files /dev/null and b/typo3/sysext/t3skin/images/sprites/t3-icon-status-workspace.png differ
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/_t3-icon.css b/typo3/sysext/t3skin/stylesheets/sprites/_t3-icon.css
new file mode 100644 (file)
index 0000000..67c4f73
--- /dev/null
@@ -0,0 +1,25 @@
+.t3-icon {
+       padding-left: 20px;
+       background: url('../../images/sprites/t3-icon-actions-edit.png') no-repeat -2px -3px;
+       position: relative;
+}
+
+span.t3-icon {
+       display: inline;
+       height: 18px;
+       overflow: hidden;
+       padding-bottom: 5px;
+       padding-left: 16px;
+}
+
+span.t3-icon-overlay {
+       display: block;
+       width: 16px;
+       height: 16px;
+       position: absolute;
+       background: url('../../images/sprites/t3-icon-status-overlay.png');
+       left: 0;
+       top: 0;
+       text-decoration: none;
+       padding: 0;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-backend.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-backend.css
new file mode 100644 (file)
index 0000000..1310755
--- /dev/null
@@ -0,0 +1,11 @@
+.t3-icon-actions-backend {
+       background-image: url('../../images/sprites/t3-icon-actions-backend.png');
+}
+
+.t3-icon-actions-backend.t3-icon-system-backend-user-emulate {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-backend.t3-icon-system-backend-user-switch {
+       background-position: 0 -36px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-cache.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-cache.css
new file mode 100644 (file)
index 0000000..a424e08
--- /dev/null
@@ -0,0 +1,23 @@
+.t3-icon-actions-cache {
+       background-image: url('../../images/sprites/t3-icon-actions-cache.png');
+}
+
+.t3-icon-actions-cache.t3-icon-system-cache-clear-impact-high {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-cache.t3-icon-system-cache-clear-impact-low {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-cache.t3-icon-system-cache-clear-impact-medium {
+       background-position: 0 -62px;
+}
+
+.t3-icon-actions-cache.t3-icon-system-cache-clear-rte {
+       background-position: 0 -88px;
+}
+
+.t3-icon-actions-cache.t3-icon-system-cache-clear {
+       background-position: 0 -114px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-document.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-document.css
new file mode 100644 (file)
index 0000000..a05e3bc
--- /dev/null
@@ -0,0 +1,87 @@
+.t3-icon-actions-document {
+       background-image: url('../../images/sprites/t3-icon-actions-document.png');
+}
+
+.t3-icon-actions-document.t3-icon-document-close {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-document.t3-icon-document-duplicates-select {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-document.t3-icon-document-export-csv {
+       background-position: 0 -62px;
+}
+
+.t3-icon-actions-document.t3-icon-document-export-t3d {
+       background-position: 0 -88px;
+}
+
+.t3-icon-actions-document.t3-icon-document-history-open {
+       background-position: 0 -114px;
+}
+
+.t3-icon-actions-document.t3-icon-document-import-t3d {
+       background-position: 0 -140px;
+}
+
+.t3-icon-actions-document.t3-icon-document-info {
+       background-position: 0 -166px;
+}
+
+.t3-icon-actions-document.t3-icon-document-localize {
+       background-position: 0 -192px;
+}
+
+.t3-icon-actions-document.t3-icon-document-move {
+       background-position: 0 -218px;
+}
+
+.t3-icon-actions-document.t3-icon-document-new {
+       background-position: 0 -244px;
+}
+
+.t3-icon-actions-document.t3-icon-document-open-read-only {
+       background-position: 0 -270px;
+}
+
+.t3-icon-actions-document.t3-icon-document-open {
+       background-position: 0 -296px;
+}
+
+.t3-icon-actions-document.t3-icon-document-paste-after {
+       background-position: 0 -322px;
+}
+
+.t3-icon-actions-document.t3-icon-document-paste-into {
+       background-position: 0 -348px;
+}
+
+.t3-icon-actions-document.t3-icon-document-save-close {
+       background-position: 0 -374px;
+}
+
+.t3-icon-actions-document.t3-icon-document-save-new {
+       background-position: 0 -400px;
+}
+
+.t3-icon-actions-document.t3-icon-document-save-view {
+       background-position: 0 -426px;
+}
+
+.t3-icon-actions-document.t3-icon-document-save {
+       background-position: 0 -452px;
+}
+
+.t3-icon-actions-document.t3-icon-document-select {
+       background-position: 0 -478px;
+}
+
+.t3-icon-actions-document.t3-icon-document-view {
+       background-position: 0 -504px;
+}
+
+.t3-icon-actions-document.t3-icon-version-document-remove {
+       background-position: 0 -530px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-edit.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-edit.css
new file mode 100644 (file)
index 0000000..a3fabe3
--- /dev/null
@@ -0,0 +1,67 @@
+.t3-icon-actions-edit {
+       background-image: url('../../images/sprites/t3-icon-actions-edit.png');
+}
+
+.t3-icon-actions-edit.t3-icon-edit-add {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-copy-release {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-copy {
+       background-position: 0 -62px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-cut-release {
+       background-position: 0 -88px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-cut {
+       background-position: 0 -114px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-delete {
+       background-position: 0 -140px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-hide {
+       background-position: 0 -166px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-localize-status-high {
+       background-position: 0 -192px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-localize-status-low {
+       background-position: 0 -218px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-pick-date {
+       background-position: 0 -244px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-rename {
+       background-position: 0 -270px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-restore {
+       background-position: 0 -296px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-undelete-edit {
+       background-position: 0 -322px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-undo {
+       background-position: 0 -348px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-unhide {
+       background-position: 0 -374px;
+}
+
+.t3-icon-actions-edit.t3-icon-edit-upload {
+       background-position: 0 -400px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-go.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-go.css
new file mode 100644 (file)
index 0000000..cabeefe
--- /dev/null
@@ -0,0 +1,19 @@
+.t3-icon-actions-go {
+       background-image: url('../../images/sprites/t3-icon-actions-go.png');
+}
+
+.t3-icon-actions-go.t3-icon-view-go-back {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-go.t3-icon-view-go-down {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-go.t3-icon-view-go-forward {
+       background-position: 0 -62px;
+}
+
+.t3-icon-actions-go.t3-icon-view-go-up {
+       background-position: 0 -88px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-insert.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-insert.css
new file mode 100644 (file)
index 0000000..3dfb262
--- /dev/null
@@ -0,0 +1,11 @@
+.t3-icon-actions-insert {
+       background-image: url('../../images/sprites/t3-icon-actions-insert.png');
+}
+
+.t3-icon-actions-insert.t3-icon-insert-record {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-insert.t3-icon-insert-reference {
+       background-position: 0 -36px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-list.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-list.css
new file mode 100644 (file)
index 0000000..06ff095
--- /dev/null
@@ -0,0 +1,15 @@
+.t3-icon-actions-list {
+       background-image: url('../../images/sprites/t3-icon-actions-list.png');
+}
+
+.t3-icon-actions-list.t3-icon-system-list-open {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-list.t3-icon-view-list-collapse {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-list.t3-icon-view-list-expand {
+       background-position: 0 -62px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-move.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-move.css
new file mode 100644 (file)
index 0000000..df1138f
--- /dev/null
@@ -0,0 +1,31 @@
+.t3-icon-actions-move {
+       background-image: url('../../images/sprites/t3-icon-actions-move.png');
+}
+
+.t3-icon-actions-move.t3-icon-move-down {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-move.t3-icon-move-left {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-move.t3-icon-move-move {
+       background-position: 0 -62px;
+}
+
+.t3-icon-actions-move.t3-icon-move-right {
+       background-position: 0 -88px;
+}
+
+.t3-icon-actions-move.t3-icon-move-to-bottom {
+       background-position: 0 -114px;
+}
+
+.t3-icon-actions-move.t3-icon-move-to-top {
+       background-position: 0 -140px;
+}
+
+.t3-icon-actions-move.t3-icon-move-up {
+       background-position: 0 -166px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-page.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-page.css
new file mode 100644 (file)
index 0000000..7cd7b98
--- /dev/null
@@ -0,0 +1,19 @@
+.t3-icon-actions-page {
+       background-image: url('../../images/sprites/t3-icon-actions-page.png');
+}
+
+.t3-icon-actions-page.t3-icon-page-move {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-page.t3-icon-page-new {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-page.t3-icon-page-open {
+       background-position: 0 -62px;
+}
+
+.t3-icon-actions-page.t3-icon-version-page-open {
+       background-position: 0 -88px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-system.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-system.css
new file mode 100644 (file)
index 0000000..d8fc91a
--- /dev/null
@@ -0,0 +1,75 @@
+.t3-icon-actions-system {
+       background-image: url('../../images/sprites/t3-icon-actions-system.png');
+}
+
+.t3-icon-actions-system.t3-icon-system-backend-user-emulate {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-system.t3-icon-system-backend-user-switch {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-system.t3-icon-system-cache-clear-impact-high {
+       background-position: 0 -62px;
+}
+
+.t3-icon-actions-system.t3-icon-system-cache-clear-impact-low {
+       background-position: 0 -88px;
+}
+
+.t3-icon-actions-system.t3-icon-system-cache-clear-impact-medium {
+       background-position: 0 -114px;
+}
+
+.t3-icon-actions-system.t3-icon-system-cache-clear-rte {
+       background-position: 0 -140px;
+}
+
+.t3-icon-actions-system.t3-icon-system-cache-clear {
+       background-position: 0 -166px;
+}
+
+.t3-icon-actions-system.t3-icon-system-extension-documentation {
+       background-position: 0 -192px;
+}
+
+.t3-icon-actions-system.t3-icon-system-extension-download {
+       background-position: 0 -218px;
+}
+
+.t3-icon-actions-system.t3-icon-system-extension-import {
+       background-position: 0 -244px;
+}
+
+.t3-icon-actions-system.t3-icon-system-extension-install {
+       background-position: 0 -270px;
+}
+
+.t3-icon-actions-system.t3-icon-system-extension-uninstall {
+       background-position: 0 -296px;
+}
+
+.t3-icon-actions-system.t3-icon-system-extension-update {
+       background-position: 0 -322px;
+}
+
+.t3-icon-actions-system.t3-icon-system-help-open {
+       background-position: 0 -348px;
+}
+
+.t3-icon-actions-system.t3-icon-system-list-open {
+       background-position: 0 -374px;
+}
+
+.t3-icon-actions-system.t3-icon-system-refresh {
+       background-position: 0 -400px;
+}
+
+.t3-icon-actions-system.t3-icon-system-shortcut-new {
+       background-position: 0 -426px;
+}
+
+.t3-icon-actions-system.t3-icon-system-tree-search-open {
+       background-position: 0 -452px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-template.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-template.css
new file mode 100644 (file)
index 0000000..fc2cb50
--- /dev/null
@@ -0,0 +1,7 @@
+.t3-icon-actions-template {
+       background-image: url('../../images/sprites/t3-icon-actions-template.png');
+}
+
+.t3-icon-actions-template.t3-icon-template-new {
+       background-position: 0 -10px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-version.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-version.css
new file mode 100644 (file)
index 0000000..e12b94a
--- /dev/null
@@ -0,0 +1,19 @@
+.t3-icon-actions-version {
+       background-image: url('../../images/sprites/t3-icon-actions-version.png');
+}
+
+.t3-icon-actions-version.t3-icon-version-document-remove {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-version.t3-icon-version-page-open {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-version.t3-icon-version-swap-version {
+       background-position: 0 -62px;
+}
+
+.t3-icon-actions-version.t3-icon-version-swap-workspace {
+       background-position: 0 -88px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-view.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-actions-view.css
new file mode 100644 (file)
index 0000000..489b1c7
--- /dev/null
@@ -0,0 +1,67 @@
+.t3-icon-actions-view {
+       background-image: url('../../images/sprites/t3-icon-actions-view.png');
+}
+
+.t3-icon-actions-view.t3-icon-view-go-back {
+       background-position: 0 -10px;
+}
+
+.t3-icon-actions-view.t3-icon-view-go-down {
+       background-position: 0 -36px;
+}
+
+.t3-icon-actions-view.t3-icon-view-go-forward {
+       background-position: 0 -62px;
+}
+
+.t3-icon-actions-view.t3-icon-view-go-up {
+       background-position: 0 -88px;
+}
+
+.t3-icon-actions-view.t3-icon-view-list-collapse {
+       background-position: 0 -114px;
+}
+
+.t3-icon-actions-view.t3-icon-view-list-expand {
+       background-position: 0 -140px;
+}
+
+.t3-icon-actions-view.t3-icon-view-paging-first-disabled {
+       background-position: 0 -166px;
+}
+
+.t3-icon-actions-view.t3-icon-view-paging-first {
+       background-position: 0 -192px;
+}
+
+.t3-icon-actions-view.t3-icon-view-paging-last-disabled {
+       background-position: 0 -218px;
+}
+
+.t3-icon-actions-view.t3-icon-view-paging-last {
+       background-position: 0 -244px;
+}
+
+.t3-icon-actions-view.t3-icon-view-paging-next-disabled {
+       background-position: 0 -270px;
+}
+
+.t3-icon-actions-view.t3-icon-view-paging-next {
+       background-position: 0 -296px;
+}
+
+.t3-icon-actions-view.t3-icon-view-paging-previous-disabled {
+       background-position: 0 -322px;
+}
+
+.t3-icon-actions-view.t3-icon-view-paging-previous {
+       background-position: 0 -348px;
+}
+
+.t3-icon-actions-view.t3-icon-view-table-collapse {
+       background-position: 0 -374px;
+}
+
+.t3-icon-actions-view.t3-icon-view-table-expand {
+       background-position: 0 -400px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-apps-filetree.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-apps-filetree.css
new file mode 100644 (file)
index 0000000..871fe32
--- /dev/null
@@ -0,0 +1,43 @@
+.t3-icon-apps-filetree {
+       background-image: url('../../images/sprites/t3-icon-apps-filetree.png');
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-folder-add {
+       background-position: 0 -10px;
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-folder-default {
+       background-position: 0 -36px;
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-folder-list {
+       background-position: 0 -62px;
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-folder-locked {
+       background-position: 0 -88px;
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-folder-media {
+       background-position: 0 -114px;
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-folder-news {
+       background-position: 0 -140px;
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-folder-temp {
+       background-position: 0 -166px;
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-folder-user {
+       background-position: 0 -192px;
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-mount {
+       background-position: 0 -218px;
+}
+
+.t3-icon-apps-filetree.t3-icon-filetree-root {
+       background-position: 0 -244px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-apps-pagetree.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-apps-pagetree.css
new file mode 100644 (file)
index 0000000..4d412e2
--- /dev/null
@@ -0,0 +1,87 @@
+.t3-icon-apps-pagetree {
+       background-image: url('../../images/sprites/t3-icon-apps-pagetree.png');
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-backend-user {
+       background-position: 0 -10px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-drag-move-between {
+       background-position: 0 -36px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-drag-move-into {
+       background-position: 0 -62px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-drag-new-between {
+       background-position: 0 -88px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-drag-new-inside {
+       background-position: 0 -114px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-drag-place-denied {
+       background-position: 0 -140px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-folder-default {
+       background-position: 0 -166px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-advanced {
+       background-position: 0 -192px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-backend-users {
+       background-position: 0 -218px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-default {
+       background-position: 0 -244px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-domain {
+       background-position: 0 -270px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-frontend-user {
+       background-position: 0 -296px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-frontend-users {
+       background-position: 0 -322px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-mauntpoint {
+       background-position: 0 -348px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-mountpoint {
+       background-position: 0 -374px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-no-icon-found {
+       background-position: 0 -400px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-not-in-menu {
+       background-position: 0 -426px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-shortcut-external {
+       background-position: 0 -452px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-page-shortcut {
+       background-position: 0 -478px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-root {
+       background-position: 0 -504px;
+}
+
+.t3-icon-apps-pagetree.t3-icon-pagetree-spacer {
+       background-position: 0 -530px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-apps-toolbar.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-apps-toolbar.css
new file mode 100644 (file)
index 0000000..11643f2
--- /dev/null
@@ -0,0 +1,11 @@
+.t3-icon-apps-toolbar {
+       background-image: url('../../images/sprites/t3-icon-apps-toolbar.png');
+}
+
+.t3-icon-apps-toolbar.t3-icon-toolbar-menu-shortcut {
+       background-position: 0 -10px;
+}
+
+.t3-icon-apps-toolbar.t3-icon-toolbar-menu-workspace {
+       background-position: 0 -36px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-mimetypes-text.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-mimetypes-text.css
new file mode 100644 (file)
index 0000000..1fdefc5
--- /dev/null
@@ -0,0 +1,11 @@
+.t3-icon-mimetypes-text {
+       background-image: url('../../images/sprites/t3-icon-mimetypes-text.png');
+}
+
+.t3-icon-mimetypes-text.t3-icon-text-csv {
+       background-position: 0 -10px;
+}
+
+.t3-icon-mimetypes-text.t3-icon-x-content-text-picture {
+       background-position: 0 -36px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-mimetypes-x.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-mimetypes-x.css
new file mode 100644 (file)
index 0000000..b0246d7
--- /dev/null
@@ -0,0 +1,79 @@
+.t3-icon-mimetypes-x {
+       background-image: url('../../images/sprites/t3-icon-mimetypes-x.png');
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-divider {
+       background-position: 0 -10px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-form-search {
+       background-position: 0 -36px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-form {
+       background-position: 0 -62px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-header {
+       background-position: 0 -88px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-html {
+       background-position: 0 -114px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-image {
+       background-position: 0 -140px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-link {
+       background-position: 0 -166px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-list-bullets {
+       background-position: 0 -192px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-list-files {
+       background-position: 0 -218px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-login {
+       background-position: 0 -244px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-menu {
+       background-position: 0 -270px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-multimedia {
+       background-position: 0 -296px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-plugin {
+       background-position: 0 -322px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-script {
+       background-position: 0 -348px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-table {
+       background-position: 0 -374px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-template-static {
+       background-position: 0 -400px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-template {
+       background-position: 0 -426px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-text-picture {
+       background-position: 0 -452px;
+}
+
+.t3-icon-mimetypes-x.t3-icon-x-content-text {
+       background-position: 0 -478px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-places-folder.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-places-folder.css
new file mode 100644 (file)
index 0000000..a8333ba
--- /dev/null
@@ -0,0 +1,11 @@
+.t3-icon-places-folder {
+       background-image: url('../../images/sprites/t3-icon-places-folder.png');
+}
+
+.t3-icon-places-folder.t3-icon-folder-closed {
+       background-position: 0 -10px;
+}
+
+.t3-icon-places-folder.t3-icon-folder-opened {
+       background-position: 0 -36px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-dialog.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-dialog.css
new file mode 100644 (file)
index 0000000..8e5db05
--- /dev/null
@@ -0,0 +1,23 @@
+.t3-icon-status-dialog {
+       background-image: url('../../images/sprites/t3-icon-status-dialog.png');
+}
+
+.t3-icon-status-dialog.t3-icon-dialog-error {
+       background-position: 0 -10px;
+}
+
+.t3-icon-status-dialog.t3-icon-dialog-information {
+       background-position: 0 -36px;
+}
+
+.t3-icon-status-dialog.t3-icon-dialog-notification {
+       background-position: 0 -62px;
+}
+
+.t3-icon-status-dialog.t3-icon-dialog-ok {
+       background-position: 0 -88px;
+}
+
+.t3-icon-status-dialog.t3-icon-dialog-warning {
+       background-position: 0 -114px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-overlay.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-overlay.css
new file mode 100644 (file)
index 0000000..97c8104
--- /dev/null
@@ -0,0 +1,35 @@
+.t3-icon-status-overlay {
+       background-image: url('../../images/sprites/t3-icon-status-overlay.png');
+}
+
+.t3-icon-status-overlay.t3-icon-overlay-access-restricted {
+       background-position: 0 -10px;
+}
+
+.t3-icon-status-overlay.t3-icon-overlay-deleted {
+       background-position: 0 -36px;
+}
+
+.t3-icon-status-overlay.t3-icon-overlay-hidden {
+       background-position: 0 -62px;
+}
+
+.t3-icon-status-overlay.t3-icon-overlay-icon-missing {
+       background-position: 0 -88px;
+}
+
+.t3-icon-status-overlay.t3-icon-overlay-includes-subpages {
+       background-position: 0 -114px;
+}
+
+.t3-icon-status-overlay.t3-icon-overlay-locked {
+       background-position: 0 -140px;
+}
+
+.t3-icon-status-overlay.t3-icon-overlay-scheduled {
+       background-position: 0 -166px;
+}
+
+.t3-icon-status-overlay.t3-icon-overlay-translated {
+       background-position: 0 -192px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-status.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-status.css
new file mode 100644 (file)
index 0000000..a1458be
--- /dev/null
@@ -0,0 +1,43 @@
+.t3-icon-status-status {
+       background-image: url('../../images/sprites/t3-icon-status-status.png');
+}
+
+.t3-icon-status-status.t3-icon-status-checked {
+       background-position: 0 -10px;
+}
+
+.t3-icon-status-status.t3-icon-status-current {
+       background-position: 0 -36px;
+}
+
+.t3-icon-status-status.t3-icon-status-edit-read-only {
+       background-position: 0 -62px;
+}
+
+.t3-icon-status-status.t3-icon-status-icon-missing {
+       background-position: 0 -88px;
+}
+
+.t3-icon-status-status.t3-icon-status-locked {
+       background-position: 0 -114px;
+}
+
+.t3-icon-status-status.t3-icon-status-permission-denied {
+       background-position: 0 -140px;
+}
+
+.t3-icon-status-status.t3-icon-status-permission-granted {
+       background-position: 0 -166px;
+}
+
+.t3-icon-status-status.t3-icon-status-reference-hard {
+       background-position: 0 -192px;
+}
+
+.t3-icon-status-status.t3-icon-status-reference-soft {
+       background-position: 0 -218px;
+}
+
+.t3-icon-status-status.t3-icon-status-workspace-draft {
+       background-position: 0 -244px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-version.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-version.css
new file mode 100644 (file)
index 0000000..f57629b
--- /dev/null
@@ -0,0 +1,207 @@
+.t3-icon-status-version {
+       background-image: url('../../images/sprites/t3-icon-status-version.png');
+}
+
+.t3-icon-status-version.t3-icon-version-1 {
+       background-position: 0 -10px;
+}
+
+.t3-icon-status-version.t3-icon-version-10 {
+       background-position: 0 -36px;
+}
+
+.t3-icon-status-version.t3-icon-version-11 {
+       background-position: 0 -62px;
+}
+
+.t3-icon-status-version.t3-icon-version-12 {
+       background-position: 0 -88px;
+}
+
+.t3-icon-status-version.t3-icon-version-13 {
+       background-position: 0 -114px;
+}
+
+.t3-icon-status-version.t3-icon-version-14 {
+       background-position: 0 -140px;
+}
+
+.t3-icon-status-version.t3-icon-version-15 {
+       background-position: 0 -166px;
+}
+
+.t3-icon-status-version.t3-icon-version-16 {
+       background-position: 0 -192px;
+}
+
+.t3-icon-status-version.t3-icon-version-17 {
+       background-position: 0 -218px;
+}
+
+.t3-icon-status-version.t3-icon-version-18 {
+       background-position: 0 -244px;
+}
+
+.t3-icon-status-version.t3-icon-version-19 {
+       background-position: 0 -270px;
+}
+
+.t3-icon-status-version.t3-icon-version-2 {
+       background-position: 0 -296px;
+}
+
+.t3-icon-status-version.t3-icon-version-20 {
+       background-position: 0 -322px;
+}
+
+.t3-icon-status-version.t3-icon-version-21 {
+       background-position: 0 -348px;
+}
+
+.t3-icon-status-version.t3-icon-version-22 {
+       background-position: 0 -374px;
+}
+
+.t3-icon-status-version.t3-icon-version-23 {
+       background-position: 0 -400px;
+}
+
+.t3-icon-status-version.t3-icon-version-24 {
+       background-position: 0 -426px;
+}
+
+.t3-icon-status-version.t3-icon-version-25 {
+       background-position: 0 -452px;
+}
+
+.t3-icon-status-version.t3-icon-version-26 {
+       background-position: 0 -478px;
+}
+
+.t3-icon-status-version.t3-icon-version-27 {
+       background-position: 0 -504px;
+}
+
+.t3-icon-status-version.t3-icon-version-28 {
+       background-position: 0 -530px;
+}
+
+.t3-icon-status-version.t3-icon-version-29 {
+       background-position: 0 -556px;
+}
+
+.t3-icon-status-version.t3-icon-version-3 {
+       background-position: 0 -582px;
+}
+
+.t3-icon-status-version.t3-icon-version-30 {
+       background-position: 0 -608px;
+}
+
+.t3-icon-status-version.t3-icon-version-31 {
+       background-position: 0 -634px;
+}
+
+.t3-icon-status-version.t3-icon-version-32 {
+       background-position: 0 -660px;
+}
+
+.t3-icon-status-version.t3-icon-version-33 {
+       background-position: 0 -686px;
+}
+
+.t3-icon-status-version.t3-icon-version-34 {
+       background-position: 0 -712px;
+}
+
+.t3-icon-status-version.t3-icon-version-35 {
+       background-position: 0 -738px;
+}
+
+.t3-icon-status-version.t3-icon-version-36 {
+       background-position: 0 -764px;
+}
+
+.t3-icon-status-version.t3-icon-version-37 {
+       background-position: 0 -790px;
+}
+
+.t3-icon-status-version.t3-icon-version-38 {
+       background-position: 0 -816px;
+}
+
+.t3-icon-status-version.t3-icon-version-39 {
+       background-position: 0 -842px;
+}
+
+.t3-icon-status-version.t3-icon-version-4 {
+       background-position: 0 -868px;
+}
+
+.t3-icon-status-version.t3-icon-version-40 {
+       background-position: 0 -894px;
+}
+
+.t3-icon-status-version.t3-icon-version-41 {
+       background-position: 0 -920px;
+}
+
+.t3-icon-status-version.t3-icon-version-42 {
+       background-position: 0 -946px;
+}
+
+.t3-icon-status-version.t3-icon-version-43 {
+       background-position: 0 -972px;
+}
+
+.t3-icon-status-version.t3-icon-version-44 {
+       background-position: 0 -998px;
+}
+
+.t3-icon-status-version.t3-icon-version-45 {
+       background-position: 0 -1024px;
+}
+
+.t3-icon-status-version.t3-icon-version-46 {
+       background-position: 0 -1050px;
+}
+
+.t3-icon-status-version.t3-icon-version-47 {
+       background-position: 0 -1076px;
+}
+
+.t3-icon-status-version.t3-icon-version-48 {
+       background-position: 0 -1102px;
+}
+
+.t3-icon-status-version.t3-icon-version-49 {
+       background-position: 0 -1128px;
+}
+
+.t3-icon-status-version.t3-icon-version-5 {
+       background-position: 0 -1154px;
+}
+
+.t3-icon-status-version.t3-icon-version-50 {
+       background-position: 0 -1180px;
+}
+
+.t3-icon-status-version.t3-icon-version-6 {
+       background-position: 0 -1206px;
+}
+
+.t3-icon-status-version.t3-icon-version-7 {
+       background-position: 0 -1232px;
+}
+
+.t3-icon-status-version.t3-icon-version-8 {
+       background-position: 0 -1258px;
+}
+
+.t3-icon-status-version.t3-icon-version-9 {
+       background-position: 0 -1284px;
+}
+
+.t3-icon-status-version.t3-icon-version-no-version {
+       background-position: 0 -1310px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-warning.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-warning.css
new file mode 100644 (file)
index 0000000..8bab38b
--- /dev/null
@@ -0,0 +1,11 @@
+.t3-icon-status-warning {
+       background-image: url('../../images/sprites/t3-icon-status-warning.png');
+}
+
+.t3-icon-status-warning.t3-icon-warning-in-use {
+       background-position: 0 -10px;
+}
+
+.t3-icon-status-warning.t3-icon-warning-lock {
+       background-position: 0 -36px;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-workspace.css b/typo3/sysext/t3skin/stylesheets/sprites/t3-icon-status-workspace.css
new file mode 100644 (file)
index 0000000..d56bf50
--- /dev/null
@@ -0,0 +1,7 @@
+.t3-icon-status-workspace {
+       background-image: url('../../images/sprites/t3-icon-status-workspace.png');
+}
+
+.t3-icon-status-workspace.t3-icon-status-workspace-draft {
+       background-position: 0 -10px;
+}
\ No newline at end of file
index c431e5e..73654c0 100644 (file)
@@ -200,6 +200,7 @@ class template {
        protected $stylesheetsCore = array(
                'structure' => 'stylesheets/structure/',
                'visual' => 'stylesheets/visual/',
+               'generatedSprites' => '../typo3temp/sprites/',
        );
 
                // include these CSS directories from skins by default