Intranet mit TYPO3

Hard-/Software

  • Welches Apache-Modul? (prefork/worker)
  • Berechtigungs-/Nutzerkonzept erstellen (Webserver- und FTP-Benutzer etc.)
  • Lasttest Typo3 mit/ohne eAccelarator mit ApacheBench
  • Apache Logging im LiveBetrieb minimieren

Verbesserungen

  • Minimierung des Quelltextes: "bodytext" etc. raus (T3N 2.06 S.29)
  • Gruppenverwaltung (T3N 2.06 S.39)

Informationen einholen

  • User/Group Verzeichnisse außerhalb fileadmin
  • DAM
  • realUrl
  • Aufklappbare Menüs (JavaScript)

Templating

Eigene Extensions

Installation / Konfiguration TYPO3

  • PHP-memory_limit auf 32MB oder höher
  • Verzeichniszugriffsrechte konfigurieren (TODO: Script, das dies erledigt)
  • apt-get install imagemagick
  • Auf deutsche Sprache umstellen (Patch 3637 für den Extension Manager)
  • Um mehrere Webseiten mit einer TYPO3-Installation zu betreiben, können die einzelnen Seiten als Unterordner auf derselben Ebene wie die TYPO3-Basisinstallation erstellt werden. Die Unterordner typo3 linken dann einfach auf das Basisverzeichnis. Um nun Extensions global für alle Seiten installieren zu können, muss die Einstellung im Install-Tool gesetzt werden: [EXT][allowGlobalInstall] = 1

Extensions

Statistiken

Mittels awstats können umfangreiche Statistiken erstellt werden. Ein gutes Tutorial gibt es hier: http://www.kyt.ch/awstats-typo3.html

  • Verzeichnis für Logdateien und die erste Logdatei anlegen (unterhalb von fileadmin) und schreibbar machen
  • $TYPO3_CONF_VARS["FE"]["logfile_dir"] = fileadmin/logfiles/
  • config.stat = 1
    config.stat_apache = 1
    config.stat_apache_logfile = typo3.log
  • Extension awstats installieren und konfigurieren
  • Meine Empfehlung: awstats separat laufen lassen! Schont die Ressourcen und ist individueller konfigurierbar.

Erstellen des Templates

  • Design der Seite im Grafikprogramm und Umsetzung als HTML-Seite mit CSS. Eine Standardvorlage für "normale" Layouts gibt es bei pixelgraphix.
  • Die Verzeichnisstruktur habe ich wie folgt gewählt:
    • fileadmin/tpl/: TypoScripts und HTML-Dateien
    • /_ressources: Ressourcen, die beim Entwurf eingesetzt wurden
    • /img: Bilder
    • /lib: eigene Scripts
    • /styles: Stylesheets
  • Die Umsetzung des HTML-Entwurfs als Template in TYPO3 ist komfortabel möglich, indem das TypoScript in externe Dateien ausgelagert wird, die mittels
    <INCLUDE_TYPOSCRIPT:source="file:fileadmin/Pfad/zur/Datei">

    im Template inkludiert werden. Diese Dateien können am besten mit SweeTS bearbeitet werden. Nach jeder Änderung an der Datei muss jedoch der Frontend-Cache geleert werden.

  • Ein rudimentäres Template sollte zunächst die folgenden Einstellungen vornehmen, um schon einmal valides XHTML zu produzieren. Damit die A-Tags valide Namen bekommen, ist das angefügte Script zu verwenden. Das Template sollte CSS_STYLED_CONTENT inkludieren. Dessen CSS-Definitionen werden allerdings in ein eigenes Stylesheet ausgelagert, das im Haupt-Stylesheet inkludiert wird (z.B. @import url("cssstyledcontent.css");). Die letzte Zeile des folgenden Templates sorgt dafür, dass CSS_STYLED_CONTENT kein temporäres Stylesheet erzeugt, daher muss der Inhalt dieser automatisch generierten Datei zunächst herauskopiert und in einer frei wählbaren Datei abgelegt werden.
    page = PAGE
     
    page.config {
     
      # XHTML
      doctype = xhtml_trans
      xhtml_cleaning = all
      xmlprologue = none
     
      # language settings  
      locale_all = de_DE
      language = de
      htmlTag_langKey = DE
      locale_all = de_DE
      language = de
     
      # clean up HTML
      removeDefaultJS = 1
      disablePrefixComment = 1
    }
     
    # XHTML anchors ----------------------------------------------------------------
    tt_content.stdWrap.dataWrap = <a name="content{field:uid}" id="content{field:uid}"></a>|
    tt_content.menu.20.3.renderObj.typolink.section.wrap = content|
    includeLibs.xhtmlAnchor = fileadmin/tpl/lib/xhtmlAnchors.inc.php
    tt_content.text.20.parseFunc.tags.link.typolink.parameter.postUserFunc = user_xhtmlAnchor
     
    # Header-Data ------------------------------------------------------------------
    page.headerData.10 = TEXT
    page.headerData.10.value (
            <link rel="stylesheet" type="text/css" href="fileadmin/tpl/styles/main.css" media="screen, projection" />
            <link rel="stylesheet" type="text/css" href="fileadmin/tpl/styles/rte.css" media="screen, projection" />
            <link rel="stylesheet" type="text/css" href="fileadmin/tpl/styles/print.css" media="print" />
    )
    page.bodyTag = <body>
     
    # remove some CSS definitions --------------------------------------------------
    plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
  • fileadmin/tpl/lib/xhtmlAnchors.inc.php
    function user_xhtmlAnchor($content, $conf)
    {
        $uriparts = explode("#", $content);
        if (isset($uriparts['1'])) 
        {
            $content = $uriparts['0'] . "#content" . $uriparts['1'];
        }
        return $content;
    }

Menü

Eine sehr gute Anleitung für JavaScript-Menüs gibt es hier: http://www.css-tutorials.de/typo3tutorials/ultimatedropdown.html

TemplaVoila

Zum Erstellen des Templates sollte (heutzutage) TemplaVoila verwendet werden :)

  • Es folgt eine Kurzanleitung angelehnt an Futuristic Template Building
  • SysOrdner als "Allgemeine Datensatzsammlung" auf Rootpage anlegen
  • Basis-Template erstellen
    page = PAGE
    page.typeNum = 0
    page.10 = USER
    page.10.userFunc = tx_templavoila_pi1->main_page
  • Das HTML-Template in der Dateiliste auswählen und "TemplaVoila" ausführen
  • Datenstruktur anlegen und Felder mappen (Futuristic Template Building)
    • Template Files: Placed pre-made HTML files from a designer in “fileadmin/template/main/”
    • Extensions: Installed TemplaVoila and CSS Styled Content
    • Storage Folder: Configured a storage folder for the website.
    • TypoScript Template record: We created a simple TypoScript Template record in the root of the website - only containing a USER cObject triggering TemplaVoila.
    • Create DS/TO: Creating a Data Structure (DS) and Template Object (TO) for the main page template
  • Das erstellte Template muss nun der Rootpage zugewiesen werden (Seite bearbeiten)
  • ALTERNATIV kann man auch einfach den Assistenten nutzen, der bei TemplaVoila dabei ist ;)

Migration des alten Intranets

...auf den neuen Server

  • Dateien und Datenbank auf den neuen Server kopieren
  • (Datenbanken typo3 und mitarbeiter anlegen)
  • In der localconf.php evtl. die Zugangsdaten für die Datenbank anpassen
  • Backend aufrufen und unnötige Extensions bzw. Test-Extensions entfernen
    • csh_de deinstallieren und vom Server löschen
    • rtehtmlarea lokal entfernen
    • make_printlink
    • eigene Extension

...auf v4.0.1

  • Verzeichnisse anpassen (Anleitung bei tugmuc.de befolgen oder das folgende Script verwenden
    #!/bin/bash
    # This script migrates the AO TYPO3 3.8.1 installation to 4.0.1
    #unzip typo3.zip
    #mysql mitarbeiter < mitarbeiter.sql
    #mysql typo3 < typo3.sql
     
    # remove old files
    rm typo3/typo3 -R
    rm typo3/t3lib -R
    rm typo3/tslib -R
    rm typo3/media -R
    rm typo3/index.php
    rm typo3/showpic.php
     
    # link new sources
    cd typo3
    ln . /var/www/typo3 -s
    ln /var/www/typo3_src-4.0.1 typo3_src -s
    ln typo3_src/t3lib t3lib -s
    ln typo3_src/typo3 typo3 -s
    ln typo3_src/index.php -s
    cd ..
     
    # create some more dirs
    mkdir typo3/typo3temp/temp
    mkdir typo3/typo3temp/GB
    mkdir typo3/typo3conf/l10n
    #mkdir typo3/uploads/media
    mkdir typo3/uploads/tf
     
    # set permissions
    chown www-data.www-data typo3 -R
    chmod 0770 typo3/typo3temp/ -R
    chmod 0770 typo3/typo3conf/ -R
    chmod 0770 typo3/uploads -R
    chmod 0770 typo3/fileadmin/_temp_ -R
  • Install-Tool (typo3/install/index.php) starten und den Database-Analyzer ausführen. Dort Compare und danach den Update Wizard ausführen.
  • Alle Caches löschen
  • Im Backend den Reference Index updaten
  • Extensions überprüfen
  • Einige Einstellungen anpassen
    $TYPO3_CONF_VARS['SYS']['curlUse'] = '1'
    $TYPO3_CONF_VARS['SYS']['curlProxyServer'] = 'http://proxy:port'
    $TYPO3_CONF_VARS['EXT']['allowGlobalInstall'] = '1'
    $TYPO3_CONF_VARS['BE']['unzip_path'] = '/usr/bin/unzip'
    $TYPO3_CONF_VARS['BE']['diff_path'] = '/usr/bin/diff'
    $TYPO3_CONF_VARS['BE']['createGroup'] = 'www-data'
    $TYPO3_CONF_VARS['FE']['tidy_path'] = '/usr/bin/tidy -i --quiet true --tidy-mark true -wrap 0 -raw --output-xhtml true --indent auto --indent-spaces 4 --break-before-br false --vertical-space no'
  • Deutsches Sprachpaket installieren (evtl. Patch 3637 einspielen) und Benutzer auf Deutsch umstellen
  • Für das neue Skin muss nun noch die Extension TYPO3 skin installiert werden

...auf TemplaVoila

  • Extension TemplaVoila installieren
  • neues Template und die Datenstrukturen/TemplateObjects für TemplaVoila als .T3D aus der Testinstallation exportieren und in die neue Installation importieren
  • Mapping der Templatedateien aktualisieren
  • HOME → Seitenheader bearbeiten → Seiten-Datenstruktur und Benutze Vorlagendesign einrichten
  • Die Pfade der Grafiken und Stylesheets etc. anpassen
    • Das komplette Verzeichnis templates aus der Testinstallation in die neue Installation kopieren nachdem es dort entfernt wurde
      cd /var/www/intranet/typo3/fileadmin
      rm templates/ -R
      svn checkout URL templates --username USER
    • Mapping der Templatedateien aktualisieren
  • Für jede Seite im Hauptmenü ausführen: Funktionen → Referenziere unbenutzte Inhaltselemente

...auf UTF-8

  • TYPO3-Parameter
    • Install-Tool: [BE][forceCharset] = utf-8
    • im Template:
      # XHTML
      doctype = xhtml_trans
      xhtml_cleaning = all
      #xmlprologue = none
      metaCharset = UTF-8
      renderCharset = UTF-8
    • falls Tidy verwendet wird, den folgenden Parameter zu den Options hinzufügen: char-encoding utf8
  • MySQL
  • Templatedateien: Werden externe Templatedateien verwendet, die einfach inkludiert werden, müssen diese mittels recode ebenfalls in UTF-8 konvertiert werden
 
typo3/start.txt · Zuletzt geändert: 2010/05/03 10:42 (Externe Bearbeitung)
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki