TYPO3 LTS 8

Aus Vosp.info
Wechseln zu:Navigation, Suche

TYPO3 LTS 9 | TYPO3 LTS 8 | TYPO3.CMS 7.6 Schnipsel | Typo3 | Typo3 Entwicklereinstellungen | Typo3 Endbenutzer Hilfe

Dokumentationen

erste Schritte

BackendLayouts

page TSConfig

  • typo3conf/ext/ancext/Configuration/PageTS/ancextTSconfig.ts
mod.web_layout.BackendLayouts {
	ncsliderBELayoutKey {
		title = mod.web_layout.BackendLayouts: ncslider
#		icon = EXT:example_extension/Resources/Public/Images/BackendLayouts/default.gif
		config {
			backend_layout {
				colCount = 1
				rowCount = 2
				rows {
					1 {
					  columns {
						1 {
						  name = ncslider
						  colPos = 1
						}
					  }
					}
					2 {
					  columns {
						1 {
						  name = Inhalte
						  colPos = 2
						}
					  }
					}
				}
			}
		}
	}
}


  • typo3conf/ext/ancext/Configuration/TCA/Overrides/pages.php
<?php

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
   'ancext',
   'Configuration/PageTS/ancextTSconfig.ts',
   'ancext special tsconfig'
);
  • jetzt kann im Backend bei den Einstellungen einer Seite unter Ressourcen das PageTS "ancext special tsconfig" eingebunden werden

Typoscript

  • typo3conf/ext/ancext/Configuration/TypoScript/setup.ts
# ....
page {
	10 = FLUIDTEMPLATE
	10 {
#		file = EXT:ancext/Resources/Private/Templates/ancextindex.html
		file.stdWrap.cObject = CASE
		file.stdWrap.cObject {
			key.data = pagelayout
			default = TEXT
			default.value = EXT:ancext/Resources/Private/Templates/ncDefault.html
			pagets__ncsliderBELayoutKey = TEXT
			pagets__ncsliderBELayoutKey.value = EXT:ancext/Resources/Private/Templates/ancextindex.html
		}
# ....
  • typo3conf/ext/ancext/ext_tables.php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'ancext template');
  • jetzt kann im Backend bei einem Template einer Seite unter Enthält das TypoScript 'ancext template' eingebunden werden

Extensions

CKEditor - Rich Text Editor - rte_ckeditor

ist veraltet

htmlArea RTE 	rtehtmlarea 	8.7.0 	obsolete 	Local 

ist der neue

CKEditor Rich Text Editor 	rte_ckeditor 	8.7.6 	stable 	System

zusätzliche Plugins

CKEditor Rich Text Editor Image Support 	rte_ckeditor_image 	8.7.4 	stable 	Local


  • Achtung:

es muss

page.includeCSS.ancbootstrap = EXT:ancbootstrap/Resources/Public/Stylesheets/style.css

das css extra eingebunden werden, sonst passiert im frontend nichts


tt_address

2 Änderungen damit die Bilder funktionieren (und nicht irgendwelche falsche Bilder angezeigt werden

[constant]
plugin.tx_browser_pi1.templates.listview.image.0{
FAL = disabled
file = tt_address.image
path = fileadmin/user_upload/
default =
}
[/constant]


In TYPO3 8, in class.tx_ttaddress_pi1.php line 394, this MUST be:

'data' => 'file:current:originalUid'

Otherwise no image will be shown.

gridelements

gridelement hinzufügen @addGridelement

  • typo3conf/ext/ancextension/Configuration/FlexForms/Extensions/gridelements/Farbleitsystem.xml
<?xml version="1.0" encoding="UTF-8"?>

<!-- @addGridelement -->

<T3DataStructure>
  <ROOT type="array">
    <type>array</type>
    <el type="array">
      <bgcolor>
        <TCEforms>
          <label>Hintergrundfarbe</label>
          <config>
            <type>select</type>
            <items type="array">
              <numIndex index="0" type="array">
                <numIndex index="0">keins</numIndex>
                <numIndex index="1"></numIndex>
              </numIndex>
              <numIndex index="2" type="array">
                <numIndex index="0">css Klasse ncCssClass hinzufügen</numIndex>
                <numIndex index="1">ncCssClass</numIndex>
              </numIndex>
            </items>
            <maxitems>1</maxitems>
            <size>1</size>
          </config>
        </TCEforms>
      </bgcolor>
    </el>
  </ROOT>
</T3DataStructure>
  • typo3conf/ext/ancextension/Configuration/PageTS/Extensions/gridelements/gridelementsPageTS.ts
tx_gridelements {
	# TS Elemente haben Vorrang vor Datensätzen mit gleichen IDs
	overruleRecords = 1

	setup {
		10 {
			title = ncCols_34_14
			description = ncCols 3/4 1/4
			frame = 1
			#         icon = EXT:ancextension/Resources/Public/Icons/Backend/Grids/Grid-Container.png
			flexformDS = FILE:EXT:ancextension/Configuration/FlexForms/Extensions/gridelements/Farbleitsystem.xml
			topLevelLayout = 0
			config {
				colCount = 2
				rowCount = 1
				rows {
					1 {
						columns {
							1 {
								name = 3/4 links
								colPos = 10
							}
							2 {
								name = 1/3 rechts
								colPos = 20
							}
						}
					}
				}
			}
		}

	}
}
  • typo3conf/ext/ancextension/Configuration/TCA/Overrides/pages.php
<?php

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
   'ancextension',
   'Configuration/PageTS/Extensions/gridelements/gridelementsPageTS.ts',
   'ancextension special tsconfig'
);
  • typo3conf/ext/ancextension/Configuration/TypoScript/Extensions/gridelements/GridElements.ts
  1. ## loaded ts after install the ext:gridelements
    #[userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('gridelements')]
    #    <INCLUDE_TYPOSCRIPT: source="FILE:EXT:gridelements/Configuration/TypoScript/setup.ts" extensions="ts">
    #[global]
     
    # @addGridelement
    tt_content.gridelements_pi1.20.10.setup.10 < lib.gridelements.defaultGridSetup
    tt_content.gridelements_pi1.20.10.setup.10 {
    	cObject = FLUIDTEMPLATE
    	cObject {
    		file = EXT:anclwhaasindex/Resources/Private/Templates/Extensions/gridelements/ncCols_34_14.html
    	}
    }
    
    tt_content.gridelements_view < tt_content.gridelements_pi1
    
  • typo3conf/ext/ancextension/Configuration/TypoScript/setup.ts
<INCLUDE_TYPOSCRIPT: source="DIR:EXT:ancextension/Configuration/TypoScript/Extensions/gridelements" extensions="txt,ts">
  • typo3conf/ext/ancextension/Resources/Private/Templates/Extensions/gridelements/ncCols_34_14.html
<div class="ncCols_34_14 row <f:if condition="{data.flexform_bgcolor}!=''"> {data.flexform_bgcolor}</f:if>">
	<div class="col-md-9">
		<f:format.raw>{data.tx_gridelements_view_columns.10}</f:format.raw>
	</div>
	<div class="col-md-3">
		<f:format.raw>{data.tx_gridelements_view_columns.20}</f:format.raw>
	</div>
</div>

gridelement 8 CSS Klassen Layout & Frame und ID wieder nutzen können

gridelement Erscheinungsbild > Layout des Inhaltselements > Layout und Frame wieder funktionsfähig machen (inkl. id=c{id})

z.B. in

  • typo3conf/ext/ancextension/Configuration/TypoScript/Extensions/gridelements/GridElements.ts

folgenden Typoscript wrap hinzufügen

tt_content.gridelements_pi1.stdWrap.wrap = <div class="gridWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}">|</div>
tt_content.gridelements_pi1.stdWrap.wrap.insertData = 1


alternativ immer alles wrappen (wrapt dann aber alle anderen inhaltselemente doppelt)

tt_content.stdWrap.dataWrap = <div class="allWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}" style="background-color:green;">|</div>


weitere sinn befreite wraps, beim versuch in den wraps ein else einzubauen

## wenn {field:layout} != ncContainerFluid dann folgender wrap - BOF
tt_content.gridelements_pi1.stdWrap.wrap = <div class="gridWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}">|</div>
tt_content.gridelements_pi1.stdWrap.wrap.insertData = 1
tt_content.gridelements_pi1.stdWrap.if.equals.field = layout
tt_content.gridelements_pi1.stdWrap.if.value = ncContainerFluid
tt_content.gridelements_pi1.stdWrap.if.negate = 1
## wenn {field:layout} != ncContainerFluid dann folgender wrap - EOF


# wenn {field:layout} != ncContainerFluid dann folgender wrap, ansonsten wrap nicht, aber gib inhalt aus - BOF
tt_content.gridelements_pi1.stdWrap.wrap = <div class="gridWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}" style="background-color:green;">|</div>
tt_content.gridelements_pi1.stdWrap.wrap.insertData = 1
tt_content.gridelements_pi1.stdWrap.wrap.if.equals.field = layout
tt_content.gridelements_pi1.stdWrap.wrap.if.value = ncContainerFluid
tt_content.gridelements_pi1.stdWrap.wrap.if.negate = 1
# wenn {field:layout} != ncContainerFluid dann folgender wrap, ansonsten wrap nicht, aber gib inhalt aus - EOF

upgrade von typo3 7.6

Grund Update / Installation

  • Datenbank backup
# export
mysqldump --single-transaction --default-character-set=utf8 -u _username_ -p _databasename_ > mysql.yyyymmdd.sql
  • Datenbankbackup und Installationsdateien auf einen neuen Server schieben, auf dem php7 läuft
  • Datenbank import
# import
mysql -u _username_ -p _databasename_ < mysql.yyyymmdd.sql
  • Source Code aktualisieren und fürs Webbackend Upgrade vorbereiten
cd TYPO3.CMS

git pull

git checkout -b  8.7.4 8.7.4
 error: Your local changes to the following files would be overwritten by checkout:
        composer.lock
 Please commit your changes or stash them before you switch branches.
 Aborting

mv composer.lock composer.lock_20170810

git checkout -b  8.7.4 8.7.4
 Switched to a new branch '8.7.4'

composer update

touch typo3conf/ENABLE_INSTALL_TOOL


(ext:rtehtmlarea)

  • -compatibility7

Probleme mit fluid_styled_content

  • -compatibility6
Core: Exception handler (WEB): Uncaught TYPO3 Exception: Call to a member function push() on null
  • -adodb&dbal
Oops, an error occurred!
Argument 1 passed to TYPO3\CMS\Extensionmanager\Utility\InstallUtility::injectInstallToolSqlParser() must be an instance of TYPO3\CMS\Install\Service\SqlSchemaMigrationService, instance of TYPO3\CMS\Dbal\Service\SqlSchemaMigrationService given, called in /var/www/calmeyer.netz.coop/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/Container/Container.php on line 233

Feinheiten in den Extensions

css_styled_content => fluid_styled_content


  • ERROR: Content Element with uid "2" and type "textmedia" has no rendering definition!

bei aktivieren von Seiten Content/Inhaltselemente kein Template

  • Layoutname darf nicht default heißen!!!
    • Layoutname muß mit einem Großbuchstaben anfangen, gefolgt von Kleinbuchstaben!
<!-- kein inhalt, kein layout, kein template ... mist -->
<f:layout name="Default" />


<!-- alles gut !!!! -->
<f:layout name="Test" />
  • die Layout dateien müssen natürlich auch umbenannt werden!

typo3conf/ext/ancextension/Resources/Private/Layouts/Default.html => typo3conf/ext/ancextension/Resources/Private/Layouts/Test.html



Unterschiede zu vorigen Versionen

extbase

Extensions change TCA in ext_tables.php Check for ExtensionManagementUtility and $GLOBALS["TCA"].

Grundsätzlich müssen Befehle wie

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'ancbootstrap');

aus der

ext_tables.php 

raus und in die

Configuration/TCA/Overrides/sys_template.php

fluid

f:if

<f:if condition="{var} == 'something'">
    <f:then>do something</f:then>
    <f:else if="{other-var} == 'something else'">do something else</f:else>
    <f:else>do the other thing</f:else>
</f:if>

<f:if condition="{something} || {someOtherThing}">
    Something or someOtherThing
</f:if>

vorher TYPO3.CMS_7.6_Schnipsel#elseif