This extension serves as a site package to customize a TYPO3-website using the template pizpalue in version 15.0.0 and higher.
The following steps set up a TYPO3 website using this package as a composer root package.
-
Get source code
composer create-project buepro/typo3-user-pizpalue && cd typo3-user-pizpalue && composer u
-
Setup TYPO3
.build/bin/typo3 setup \ --no-interaction \ --driver=mysqli \ --host=db \ --port=3306 \ --dbname=db \ --username=db \ --password=db \ --admin-username=admin \ --admin-user-password=password \ --admin-email='' \ --project-name="Pizpalue site" \
-
Setup extensions
.build/bin/typo3 extension:setup composer rem buepro/typo3-pizpalue-distribution
NOTE: We remove the distribution since the page tree and assets have been loaded by setting up the extensions.
-
Copy
htaccess
cp .build/vendor/typo3/cms-install/Resources/Private/FolderStructureTemplateFiles/root-htaccess .build/public/.htaccess
-
Review
composer.json
-
Define packages
Remove the dependency to packages not required by the site.
NOTE: Just use the needed packages. In many projects just
buepro/typo3-pizpalue
andbuepro/typo3-container-elements
are required. -
Check PHP configuration
Make sure the PHP version used in the shell and for cron jobs corresponds to the PHP version used for running the website. In case they differ you might need to add a platform configuration to
composer.json
. A possible platform configuration could look as following:"config": { "platform": { "php": "8.2.6" } }
-
-
Finalize installation
.build/bin/typo3 cache:warmup
When starting a new project create a new git-branch and just commit to that branch. The main branch should always be used to start new projects.
To increase quality work progress might be committed and documented. Documentation has its home in the folder
Documentation
. A changelog can be created with the following steps:
- In a shell go to the
Build
directory - Run
npm install
(only needed, if not already done) - Run
grunt doc
Customizations typically start by adapting the ts constants and
ts setup. Frequently used configurations are collected in the
folder Configuration/TypoScript/Sample
. You might use them to get started by
copying the needed fragments to
Configuration/TypoScript/constants.typoscript
or
Configuration/TypoScript/setup.typoscript
.
Style declarations are maintained in the folder Resources/Public/Scss
. For stylesheets to be
embedded TS needs to be setup. See page.includeCSS
for further details.
It might become handy to create a customized icon font. Ideally it contains all used icons from the website. To generate an icon font the icons need to be available in svg-format. Unfortunately not all svg-formats lead to the desired result hence some testing might be needed. An icon font might be created by following these steps:
- Copy all svg-icons to the folder
Resources/Public/Icons/Font
- In a shell go to the
Build
directory - Run
npm install
(only needed, if not already done) - Run
grunt iconfont
Upon creating the icon font its resources can be found in Resources/Public/Fonts
. Next the font needs to be embedded
with the following TS setup:
page {
includeCSSLibs {
pizpalueicon >
upicon = EXT:user_pizpalue/Resources/Public/Fonts/upicon.min.css
}
}
Now your ready to use the icon font in the markup: <i class="upicon upicon-custom1"></i>
would render an icon showing
the graphic defined by custom1.svg
.
They are maintained in Resources/Private
. As an example to add a new page template follow these
steps:
- Create the template in the directory
Resources/Private/Templates/Page
- Enable the template in the TS constant declaration
page {
fluidtemplate {
templateRootPath = EXT:user_pizpalue/Resources/Private/Templates/Page/
}
}
- Test code:
ddev composer ci
- Fix code:
ddev composer fix
- Use the coding guidelines defined by TYPO3.
- Use up, Up, up-, upc- as package related prefixes where
upc-
is mainly used for complementary css classes used together with other selectors (e.g..up-example .upc-red { ... }
)
For coding
- TypoScript reference
- Fluid guide
- Fluid view helper reference
- TCA reference
- TSconfig reference
- Core API reference
- Best practice example extension
For documentation